在包含许多包含 CSV 的子文件夹的目录中多次批量运行 Pandas Concat 脚本



下午好,

我有一个python pandas concat脚本,它将2个CSV水平合并为"master.csv",并在合并的主.csv重命名其中一个CSV标头。我目前有一个包含 100 个子文件夹的目录,每个子文件夹中有两个 CSV(所有 csv 都有相同的文件名:csv1、csv2(。我想在主目录中的每个子文件夹上批量运行 pandas concat 脚本。我假设我需要某种循环,但仍然缺乏对蟒蛇和熊猫的经验。任何帮助将不胜感激!

脚本如下:

import pandas as pd
a = pd.read_csv("csv1.csv")
b = pd.read_csv("csv2.csv")
b.rename(index=str, columns={'month' : 'month - 2018','year' : 'year - 2018', inplace=True)
b = b.reset_index(drop=True)
merged = pd.concat([a,b], axis=1, sort=False)
merged.to_csv("Master.csv", index=False)

谢谢!

感谢 MattR 推荐 os.walk((。我能够成功地通过每个子目录运行我的脚本。每次脚本运行时,我都必须更改我的工作目录,然后移动到下一个子目录。代码如下:

import pandas as pd
import os
def Merge_CSVs():
rootdir = "/mypath"
directories = [os.path.abspath(x[0]) for x in os.walk(rootdir)]
directories.remove(os.path.abspath(rootdir))
for i in directories:
    os.chdir(i)
    Merge_CSVs()

最新更新