我想將30K csvs合併到具有相同頭文件的目錄中,我想將它們合併到一個文件中。與下面的代碼,我只能合併,但具有相同的標題,我不想在添加新文件的位置後重復標題。將60K csv的輸出合併並寫入一個csv
import pandas as pd
f = r'path/*.csv
combined_csv = pd.concat([ pd.read_csv(f) for f in filenames ])
combined_csv.to_csv('output.csv', index=False, header=True)
錯誤:
Traceback (most recent call last):
File "merg_csv.py", line 4, in <module>
combined_csv = pd.concat([ pd.read_csv(f) for f in filenames ])
NameError: name 'filenames' is not defined
編輯:在下面的作品的答案,但過一段時間後提供的解決方案的使用內存和程序凍結,凍結也是我的屏幕。
import glob
import pandas as pd
all_data = pd.dataFrame()
dfs = []
for f in glob.glob("*.csv"):
df = pd.read_csv(f, error_bad_lines=False)
dfs.append(df)
all_data = pd.concat(dfs, ignore_index=True)
all_data.to_csv("00_final.csv", index=None, header=True)
如何合併並寫入輸出文件在同一時間,以便我不會面臨低內存錯誤。輸入大小約爲1.5GB,文件數量大於60K。
預先感謝!
什麼是你正在運行到這個問題? – pvg
@pvg更新了問題..更改了代碼和錯誤 –
這實際上與熊貓或標題沒有任何關係。似乎你想要將該模式集中起來,然後迭代它生成的文件名。你應該看看如何做到這一點,因爲你嘗試的方式是非常不對的。 – pvg