2017-08-24 42 views
1

我想從我的電腦中讀取名爲ratings.csv的.csv文件http://grouplens.org/datasets/movielens/20m/這個文件是533.4MB。使用熊貓高效讀取大型CSV文件而不會崩潰

這是我在jupyter筆記本從這裏寫

import pandas as pd 
ratings = pd.read_cv('./movielens/ratings.csv', sep=',') 

的問題是核心會破裂或死,叫我重新啓動和不斷重複相同的。沒有任何錯誤。請你能提出解決這個問題的其他辦法,就好像我的電腦沒有這個能力。

這工作,但它不斷改寫

chunksize = 20000 
for ratings in pd.read_csv('./movielens/ratings.csv', chunksize=chunksize): 
ratings.append(ratings) 
ratings.head() 

只有最後一塊被寫入別人註銷

回答

2

你應該考慮在你的數據幀讀取時使用chunksize參數read_csv,因爲它返回一個TextFileReader對象,然後你可以傳遞給pd.concat來連接你的塊。

chunksize = 100000 
TextFileReader = pd.read_csv('./movielens/ratings.csv', sep=',', chunksize=chunksize, iterator=True) 
df = pd.concat(TextFileReader, ignore_index=True) 

容納編輯:

chunksize = 20000 
out = None 
for ratings in pd.read_csv('./movielens/ratings.csv', chunksize=chunksize): 
    if out is None: 
     out = ratings.copy() 
    else: 
     out.append(ratings) 

    out.head() 
+0

雖然我曾經嘗試這樣做它不是崩潰但是內核的運行時間超過40分鐘而不終止....我只是取消了。我應該多長時間閱讀20M記錄? – Developer

+0

@Developer增加chunksize並設置迭代器= True。再試一次。 –

+0

您能否協助您進行修改。它速度很快,但是我沒有在每次寫入數據時追加數據@cOLDsLEEP – Developer