如何在Python中合并200个CSV文件?

100 投票
23 回答
199958 浏览
提问于 2025-04-15 20:49

我这里有200个单独的CSV文件,名字从SH (1)到SH (200)。我想把它们合并成一个CSV文件。请问我该怎么做呢?

23 个回答

65

使用Stack Overflow 上被认可的答案来创建一个你想要合并的 CSV 文件列表,然后运行以下代码:

import pandas as pd

combined_csv = pd.concat( [ pd.read_csv(f) for f in filenames ] )

如果你想把这些内容导出到一个单独的 CSV 文件,可以使用下面的代码:

combined_csv.to_csv("combined_csv.csv", index=False)
79

你可以直接用 sed 1d sh*.csv > merged.csv 这个命令。

有时候你甚至不需要用到Python!

109

正如ghostdog74所说的,这次我们要处理带有表头的情况:

with open("out.csv", "ab") as fout:
    # First file:
    with open("sh1.csv", "rb") as f:
        fout.writelines(f)

    # Now the rest:
    for num in range(2, 201):
        with open("sh" + str(num) + ".csv", "rb") as f:
            next(f) # Skip the header, portably
            fout.writelines(f)

撰写回答