首页 > 解决方案 > 根据列值连接多个 CSV 文件,但多个 csv 文件具有相同的标题但顺序不同

问题描述

我正在清理一些数据。我有来自多个主题的多个主题的数据。

SubNo Trails Score 
1       1      4
1       2      4
1       3      8
7       1      9
7       2      8
7       3      8
19
:
:

对于同一主题,我有另一个数据集,用于 SubNo 的无差别顺序

SubNo Trails Height 
19      1      100
19      2      400
19      3      810
7       1      911
7       2      811
7       3      811
20      1      222
20      2      222
20      3      789
1
1
:
:

我想在 SubNo 上加入这两个,这样最后我每个主题的分数和身高都有一个 CSV。

SubNo Trails Score Height 
1        1     4     198
1        2     4     209
1        3     8     289
2        1     :      :
2        2
2        3

在这里,我根据 subNo 加入了相同的数据:所以,1 的所有值一起,主题 2 的所有值一起等等。在我的两个 csv 文件中,主题的顺序是不一样的。所以,我不想基于标题加入,而是基于特定的主题编号。在我的情况下,就是 1、2、17,......就像那样。我应该怎么做?(我尝试过熊猫合并,它基于标题)。那不会做我想要的。

标签: pythonpandascsvdata-manipulationdata-cleaning

解决方案


您的问题有点不清楚,但据我所知,您正在尝试获取一个包含 SubNo、Trails、Score 和 Height 列的单个 csv 文件(其中 SubNo 列是关键)

在这种情况下,您应该执行以下操作:

new_dataframe = left_dataframe.join(right_dataframe.set_index('SubNo'), on='SubNo', how='left')

或者:

new_dataframe = pd.merge(left_dataframe, right_dataframe, on='SubNo', how='left')

推荐阅读