我有 100 个 XLS 文件,我想将它们合并到一个 CSV 文件中。有没有办法提高将它们组合在一起的速度?
使用 concat 的问题在于它缺少 to_csv 提供给我的参数:
listOfFiles = glob.glob(file_location)
frame = pd.DataFrame()
for idx, a_file in enumerate(listOfFiles):
print a_file
data = pd.read_excel(a_file, sheetname=0, skiprows=range(1,2), header=1)
frame = frame.append(data)
# Save to CSV..
print frame.info()
frame.to_csv(output_dir, index=False, encoding='utf-8', date_format="%Y-%m-%d")
最佳答案
使用 multiprocessing ,您可以使用类似以下内容并行阅读它们:
import multiprocessing
import pandas as pd
dfs = multiprocessing.Pool().map(df.read_excel, f_names)
然后将它们连接成一个:
df = pd.concat(dfs)
您可能应该检查第一部分是否比
dfs = map(df.read_excel, f_names)
YMMV - 它取决于文件、磁盘等。
关于python - 有没有办法并行化 Pandas 的 Append 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30246804/