【发布时间】:2017-12-01 03:39:49
【问题描述】:
我目前正在使用以下代码导入 6,000 个 csv 文件(带有标题)并将它们导出到单个 csv 文件(带有单个标题行)。
#import csv files from folder
path =r'data/US/market/merged_data'
allFiles = glob.glob(path + "/*.csv")
stockstats_data = pd.DataFrame()
list_ = []
for file_ in allFiles:
df = pd.read_csv(file_,index_col=None,)
list_.append(df)
stockstats_data = pd.concat(list_)
print(file_ + " has been imported.")
这段代码运行良好,但速度很慢。最多可能需要 2 天的时间来处理。
我得到了一个终端命令行的单行脚本,它执行相同的操作(但没有标题)。此脚本需要 20 秒。
for f in *.csv; do cat "`pwd`/$f" | tail -n +2 >> merged.csv; done
有人知道如何加快第一个 Python 脚本的速度吗?为了缩短时间,我考虑过不将其导入 DataFrame 而只是连接 CSV,但我无法弄清楚。
谢谢。
【问题讨论】:
标签: python csv pandas terminal concatenation