-
讀取csv文件到Dataframe中
1. 讀取一般普通的csv
df=pd.read_csv('data.csv',sep='\t',header=0,names=['col1', 'col2'],dtype={'col1':"str", 'col2':"int64"})
header=0:不讀取原來的列名
names=['col1', 'col2']:按照位置順序,重新給列命名
dtype={'col1':"str", 'col2':"int64"}:按照dict語法,給列指定類型,如果有nan值可能會報錯,需要再配合na_values, keep_default_na, na_filter等3個參數(shù)對na進行處理
2. 分塊讀取大型csv
df_table=pd.read_csv('data.csv',header=None,sep='\t',chunksize=100000)
for df in df_table:
pass
3. 迭代讀取特定size的csv
df_iter=pd.read_csv('data.csv', sep='\t', iterator=True)
while True:
try:
df = df_iter.get_chunk(10000)
pass
except StopIteration:
break
4. 讀取特定行數(shù)用于測試
df=pd.read_csv('data.csv', sep='\t', nrows=10)
5. 讀取特定列
df=pd.read_csv('data.csv', sep='\t', usecols = [0,1,2,3])
usecols=[0,1,2,3]: 按照位置順序,指定要讀取的列
-
創(chuàng)建Dataframe
1. 創(chuàng)建指定列的空Dataframe
df=pd.Dataframe(columns=["col1", "col2"])
2. 創(chuàng)建帶數(shù)據(jù)的Dataframe
df=pd.Dataframe({"col1":[1,2,3], "col2":['a','b','c']})
-
處理空值
1. 整體替換
df.fillna("", inplace=True)
2. 替換某列
df.fillna({'column':"", inplace=True}
TODO
numpy : y = np.where(np.isnan(x), None, x)
pandas: df1 = df.where((pd.notnull(df)), None)