再用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()
代碼執行結果如下: