pandas讀取大檔案時memoryerror的解決辦法
阿新 • • 發佈:2018-11-10
再用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 pddef 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()
程式碼執行結果如下: