日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

用python pandas按块读取超大csv/txt

發(fā)布時(shí)間:2025/4/16 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 用python pandas按块读取超大csv/txt 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

如果一個(gè)csv文件過(guò)大,比如說(shuō)達(dá)到好幾G,直接讀取的話內(nèi)存估計(jì)hold不住,幸好pandas支持使用chunksize指定行數(shù),每次按多少行多少行來(lái)讀取,這樣就避免了一次性讀取過(guò)多數(shù)據(jù)導(dǎo)致內(nèi)存崩潰。

用row["某個(gè)列的名稱"] 即可讀取該列的對(duì)應(yīng)數(shù)據(jù)了,之后就可以進(jìn)行數(shù)據(jù)處理了。

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

補(bǔ)充一段代碼,有時(shí)候csv里面會(huì)有一些所謂的臟數(shù)據(jù)導(dǎo)致讀取錯(cuò)誤,這個(gè)時(shí)候只需要配置error_bad_lines=False 即可跳過(guò)這一行的處理,注意,是跳過(guò),幫你自動(dòng)處理是不可能的,還是要自己想辦法去排除產(chǎn)生這個(gè)錯(cuò)誤的原因。

通常來(lái)講,超大csv/txt都是來(lái)自數(shù)據(jù)庫(kù)的查詢結(jié)果,這些超大文件里面如果有時(shí)候包含了英文的分號(hào)、逗號(hào)、單雙引號(hào)、空格、換行符等符號(hào)就容易出現(xiàn)這種錯(cuò)誤,處理方法通常就是在數(shù)據(jù)庫(kù)查詢腳本那里將這些符號(hào)提前替換掉。

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

?

?

總結(jié)

以上是生活随笔為你收集整理的用python pandas按块读取超大csv/txt的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。