用python pandas按块读取超大csv/txt
生活随笔
收集整理的這篇文章主要介紹了
用python pandas按块读取超大csv/txt
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
如果一個csv文件過大,比如說達到好幾G,直接讀取的話內存估計hold不住,幸好pandas支持使用chunksize指定行數,每次按多少行多少行來讀取,這樣就避免了一次性讀取過多數據導致內存崩潰。
用row["某個列的名稱"] 即可讀取該列的對應數據了,之后就可以進行數據處理了。
import pandas as pdchunksize = 1000count = 1 for df in pd.read_csv('1.txt',chunksize=chunksize):print(count)for index,row in df.iterrows():print(count,index)# break# x=row['djxh']# y=row[1]# print(index,x,y)count+=1補充一段代碼,有時候csv里面會有一些所謂的臟數據導致讀取錯誤,這個時候只需要配置error_bad_lines=False 即可跳過這一行的處理,注意,是跳過,幫你自動處理是不可能的,還是要自己想辦法去排除產生這個錯誤的原因。
通常來講,超大csv/txt都是來自數據庫的查詢結果,這些超大文件里面如果有時候包含了英文的分號、逗號、單雙引號、空格、換行符等符號就容易出現這種錯誤,處理方法通常就是在數據庫查詢腳本那里將這些符號提前替換掉。
import pandas as pdchunksize = 500000data = pd.read_csv("sample.csv",encoding='utf-8',error_bad_lines=False,chunksize=chunksize)count = 1 for chunk in data:file_name = "out"+str(count)+".xlsx"count +=1chunk.to_excel(file_name,index=False)break?
?
總結
以上是生活随笔為你收集整理的用python pandas按块读取超大csv/txt的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 用python pandas三行代码实现
- 下一篇: 用python结束exe进程