2016-11-16 100 views
0

我python.my問題的新用戶是這樣的:我怎麼讀大CSV(20G)

我有三個CSV文件(每個約15G,並有三列),我想將它們讀入python中,並去掉dur = 0的行。我的csv就是這樣的。

sn_fx sn_tx dur 
5129789 3310325 2 
5129789 5144184 1 
5129789 5144184 1 
5129789 5144184 1 
5129789 5144184 1 
5129789 6302346 4 
5129789 6302346 0 

我知道我應該逐行讀取,我嘗試這樣的:

file='cmct_0430x.csv' 
for line in file.xreadlines(): 
    pass 

但似乎不起作用。

此外,我不知道如何將這些行轉換爲數據框。

有人可以告訴我更多關於此的細節,我將非常感謝你!

+0

Python有一個'csv'模塊,否則使用'pandas'。但首先確認你有足夠的內存來讀取這個文件。 – Evert

+0

有一些問題是重複的。沒有任何有關您將如何處理數據的信息,無法確定哪一個最適合。 –

+0

謝謝。我嘗試了pd.read_csv,但它有內存錯誤。 – lemon

回答

0

你應該使用熊貓。並閱讀chunks(處理的行數)合適大小的csv。然後使用concat獲取所有的塊。

from pandas import * 

tp = read_csv('cmct_0430x.csv', iterator=True, chunksize=1000) 
df = concat(tp, ignore_index=True) 

熊貓:Read_csv

你得到的內存錯誤,因爲你是在一個時間比你的主內存的大小處理整個CSV。嘗試將它分成大塊,然後處理它。

+0

謝謝,我剛試過,它內存不足 – lemon