1. 程式人生 > >pandas讀取大檔案時memoryerror的解決辦法

pandas讀取大檔案時memoryerror的解決辦法

再用pd.read_csv讀取大檔案時,如果檔案太大,會出現memoryerror的問題。

 

解決辦法一:pd.read_csv的引數中有一個chunksize引數,為其賦值後,返回一個可迭代物件TextFileReader,對其遍歷即可

reader = pd.read_csv(file_path, chunksize=20)  # 每次讀取20條資料

 1 import pandas as pd 
 2 
 3 def knn():
 4     # 讀取資料
 5     file_path = './facebook/train.csv'
 6     
 7     reader = pd.read_csv(file_path, chunksize=20)    #
每塊為20條資料(index) 8 9 for chunk in reader: 10 print(chunk) 11 break 12 13 if __name__ == '__main__': 14 knn()

程式碼執行結果如下:

 

 解決辦法二:pd.read_csv的引數中有一個iterator引數,預設為False,將其改為True,返回一個可迭代物件TextFileReader,使用它的get_chunk(num)方法可獲得前num行的資料

import pandas as pd 

def knn(): '''完成k近鄰演算法''' # 讀取資料 file_path = './facebook/train.csv' reader = pd.read_csv(file_path, iterator=True) chunk = reader.get_chunk(5) # 獲取前5行資料 print(chunk) if __name__ == '__main__': knn()

程式碼執行結果如下: