![](/img/trans.png)
[英]Python Pandas - Write New CSV Header Row without Reading/ReWriting Entire File
[英]Prevent pandas from rewriting formatted header to csv for every chunk
我有一個臟的csv,上面有一個丑陋的標頭,已格式化並存儲在列表中。
我想逐塊讀取此csv,對數據執行一些正則表達式,然后寫入新的csv。
我正在使用此功能
def format_data(data_location, formatted_header):
df = pd.read_csv(data_location, sep=',', skiprows=1,
header=0, names=formatted_header, chunksize=10000)
for chunk in df:
chunk = chunk.replace('(?!(([^"]*"){2})*[^"]*$),', '', regex=True)
chunk.to_csv('formatted_data.csv', mode='a', index=False)
據我了解我在這里做什么:
pd.read_csv(data_location, sep=',', skiprows=1,
header=0, names=formatted_header, chunksize=10000)
我正在從它的位置讀取csv,跳過了第一個丑陋的標頭行,並替換為我的formatted_header。
我的問題是,對於寫入新CSV的每個新塊,我看到格式化的標題行每10,000行重復一次。 如何防止這種情況發生?
由於您只想編寫一次標頭,因此請使用布爾值查看您是否在第一個塊上。
例如:
write_header = True
for chunk in df:
chunk = chunk.replace('(?!(([^"]*"){2})*[^"]*$),', '', regex=True)
chunk.to_csv('formatted_data.csv', mode='a', index=False, header=write_header)
write_header = False
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.