首页 > 解决方案 > 创建 csv 文件列表后,如何合并它们?

问题描述

我创建了一个 csv 文件列表并清理了它们。我一直坚持将这些 csv 文件列表合并在一起。每个 csv 文件在清理后具有相同的列标签。它们还有一个额外的列标签。我需要合并具有相同名称的列。

这是我的代码示例:

os.listdir(os.getcwd()) 
filelist = glob.glob('*.csv') 

for file in filelist:
    df = pd.read_csv(file)
    #cleaning code section
    print(df.head())
pd.concat(filelist)

我试过使用 pd.concat(filelist) 因为我虽然它可以用列表做到这一点,但我明白了

TypeError:无法连接类型为“<class 'str'>”的对象;只有 Series 和 DataFrame obj 是有效的

如果是这种情况,我可以将我的列表变成一个 DataFrame 对象,还是可以使用合并或加入之类的东西?

请发送帮助!

标签: pandaslistcsvjoinmerge

解决方案


os.listdir(os.getcwd()) 
filelist = glob.glob('*.csv') 

dfs = []
for file in filelist:
    file_df = pd.read_csv(file)

    #cleaning code section
    print(file_df.head())

    dfs.append(file_df)

df = pd.concat(dfs, ignore_index=True) # ignore_index to reset index in concatenated df

# One-liner (no cleaning)
df = pd.concat((pd.read.csv(file) for file in glob.glob('/*.csv')), ignore_index = True)

推荐阅读