Pandas處理「大」資料的一些技巧

2021-09-23 13:29:12 字數 1130 閱讀 7760

實習定下來下的空檔期,抽空參加了一些大資料競賽,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...