pandas分塊處理資料

2021-10-23 08:16:36 字數 1429 閱讀 7707

之前資料特徵太多,獨熱編碼時記憶體不夠,想著分塊處理。但我選出一些關鍵特徵後就沒問題了,以下方法沒有實際用過,寫完後在這備忘下

from sklearn.model_selection import train_test_split

# 設定隨機種子

seed =

0np.random.seed(seed)

defget_train_test

(chunk, test_size=

0.95

, seed=seed)

:"""劃分訓練集測試集"""

y =1*

(chunk[

'target']==

"rep"

)# 對映

x = chunk.drop(

["target"

], axis=1)

x = pd.get_dummies(x, sparse=

true

)# 獨熱編碼,記憶體要求高

return train_test_split(x, y, test_size=test_size, random_state=seed)

# 分塊處理資料

df_reader = pd.read_csv(r'...\data\data.csv'

, iterator=

true

)xtrain_chunks, xtest_chunks, ytrain_chunks, ytest_chunks =

,,,[

]while

true

:try

: chunk = df_reader.get_chunk(

5000

)# 去掉整列相同的資料

chunk .loc[:,

(chunk != chunk .iloc[0]

).any()]

xtrain, xtest, ytrain, ytest = get_train_test(chunk)

print

('iteration: %d'

%len

(xtrain_chunks)

)except

:print

('finished'

)break

xtrain = pd.concat(xtrain_chunks, ignore_index=

true

)xtest = pd.concat(xtest_chunks, ignore_index=

true

)ytrain = pd.concat(ytrain_chunks, ignore_index=

true

)ytest = pd.concat(ytest_chunks, ignore_index=

true

)

pandas處理資料

pd.read csv path to file.txt header 0,names ab index 0 names columns這個可以不寫,制定索引列是第一列,這樣就沒有序號 np.tofile d python np.txt 類似於二維列表 充分利用map函式 df.a df.a.map...

pandas 資料處理

pandas中資料可以分為series,dataframe,panel分別表示一維至三維資料。其中在構造時,index表示行名,columns表示列名 構造方式 s pd.series data index index s pd series np random randn 5 index a b ...

Pandas 處理缺失資料

import numpy as np import pandas as pd from pandas import series,dataframes series a b np.nan,c d pd.isnull s 0 false 1 false 2 true 3 false 4 false d...