我有两个数据帧,我想在列CCOL上合并它们:我给出一个简短的示例,如下所示:(相同的名称Cols在两个数据帧中具有相同的数据)
df1 =
CCOL ColA ColB ColC ColD ColE ColF
A 1.0 a b 23 45 2.7
B 3.0 c q 26 34 5.9
C 5.0 f r 2 4.9 15.9
D 7.0 e s 45 2 8
df2 =
CCOL ColA ColB ColE ColP ColR ColS
A 1.0 a 45 vq 4 21.7
AF 7.0 za 7.9 r 4 3.1
D 7.0 e 2 gh 3 53.1
GK 8.0 ut 2 qt 4 33.3
因此,我要寻找的这两个数据帧的最终输出如下:
final_df =
CCOL ColA ColB ColC ColD ColE ColF ColP ColR ColS
A 1.0 a b 23 45 2.7 vq 4 21.7
D 7.0 e s 45 2 8 gh 3 53.1
我试过了
newdf = pd.merge(df1,df2,on='CCOL', how='inner')
但是,这一个从相同的列在新的df中创建ColA_x、ColA_y等,我不需要这些
我的朋友:
newdf = df1.combine_first(df2)
但是,这将创建一个如下所示的数据帧,为带有CCOL“a”的行提供正确的数据;“D”,但对于df1&;df2在CCOL上不匹配
newdf =
CCOL ColA ColB ColC ColD ColE ColF ColP ColR ColS
A 1.0 a b 23 45.0 2.7 vq 4.0 21.7
B 3.0 c q 26 34.0 5.9 r 4.0 3.1
C 5.0 f r 2 4.9 15.9 gh 3.0 53.1
D 7.0 e s 45 2.0 8.0 qt 4.0 33.3
因此,我不知道如何实现我的最终输出。任何帮助都将不胜感激
在这里,只需使用
how
参数作为'left'
并添加dropna
:输出:
好的,我假设您希望根据一个特定列(在df1和df2中都存在)的值,在df1和df2中的列上扩展结果df,该值将标识要扩展的行
因此,没有合并,而是在不同的轴上进行连接,如我的示例中所示:
排除一行,其中num_legs!=num_legs2。我想要concat的其余列是在concat方法中提供的
详情请参阅此link
编辑: 我的成绩中仍有不好的地方。加上这个
老实说,这个answer要好得多:)
相关问题 更多 >
编程相关推荐