實習定下來下的空檔期,抽空參加了一些大資料競賽,pandas用的比較多,所以這裡彙總下pandas的一些使用心得和總結一些遇到過的問題吧。
import pandas as pd
res=
for dfs in pd.read_csv(
'data.csv'
,chunksize=
1000
,iterator=
true):
do(dfs)
#處理子塊
pd.concat(res,axis=0)
# 最後拼接好結果
# chunksize 設定讀取塊的大小(行),最後一次可能不滿1000
import pandas as pd
from sklearn.externals.joblib import parallel, delayed
def(df, func, cpu_n=16)
: @params cpu_n: cpu_n為程序數
"""df_length=
len(df)
cpu_n=
16 d=df_length//cpu_n
sp=for i in
range(0
, cpu_n-1)
:range
(i*d,
(i+1
)*d)
)range
((cpu_n-1)
*d,df_length)
) results = parallel(n_jobs=cpu_n)
(delayed(func)
(df.iloc[spl]
)for spl in sp)
#results = parallel(backend="threading",n_jobs=cpu_n)(delayed(func)(df.iloc[spl]) for spl in sp) 即可設定多執行緒
return pd.concat(results)
defdo_some_to__df
(df)
: df.(.
..)return df
16)
Pandas處理大資料的一些小技巧
大文字資料的讀寫 有時候我們會拿到一些很大的文字檔案,完整讀入記憶體,讀入的過程會很慢,甚至可能無法讀入記憶體,或者可以讀入記憶體,但是沒法進行進一步的計算,這個時候如果我們不是要進行很複雜的運算,可以使用read csv提供的chunksize或者iterator引數,來部分讀入檔案,處理完之後再...
對於大資料的一些處理方法
問題 資料太大,在記憶體中無法一次性裝入。分析 100億就是大約就是10g,對於現在的計算機而言,記憶體中無法容納這麼大的檔案。解決 將乙個大檔案切分為多個小檔案,例如 我們可以將該100億的大檔案切分為1000個檔案,即每個檔案的大小大約就是10m,那麼就可以在記憶體中容納得下了。那麼,我們要怎麼...
pandas 大資料處理
準備 檢視所佔記憶體函式 def mem usage pandas obj if isinstance pandas obj,pd.dataframe usage b pandas obj.memory usage deep true sum else usage b pandas obj.memo...