首页 > 解决方案 > 使用 pandas 合并多个 CVS 文件

问题描述

我正在努力使用熊猫合并多个 .csv 文件。

所有文件都具有如下所示的相同结构,其中每个 csv 的“UniqueColumn”各不相同,每个 csv 的“名称”列都相同,但它们的排序方式不同:

csv1:
Name, UniqueColumnA
testName, DataA
...

csv2:
Name, UniqueColumnB
testName, DataB
...

等等

所需的合并 csv 文件如下所示:

Name, UniqueColumnA, UniqueColumnB, UniqueColumnC
testName, DataA, DataB, DataC

我尝试使用以下代码:

files = glob.glob(r'pathname*.csv')
df = pd.concat([pd.read_csv(f, index_col=['Name']) for f in files])
df.to_csv('merged.csv')

但输出是

testName, DataA
testName, DataB
...

我对 Python 不是很熟悉,尤其是对 pandas,所以我非常感谢您的帮助

标签: pythonpandascsv

解决方案


有重复的索引,您需要告诉熊猫如何处理它们,在您的情况下,您需要一个,inner join因此以下内容应该适合您:

df = pd.concat([pd.read_csv(f, index_col='Name') for f in files], join='inner', axis=1)

推荐阅读