我想将数据框附加到另一个,即使它们的大小不同

nie*_*eka 2 python dataframe pandas

我有一个关于合并两个数据帧的问题.我有一个数据帧,看起来像这样

>> print(df)
     no  value1  value2
0    a     0    -1
1    b    -1     1
2    c    -1     1
3    d     0    -1
4    e    -1    -1
Run Code Online (Sandbox Code Playgroud)

现在我有一个额外的数据框,看起来像这样

>> print(df2)
     no  value3  value4
0    a     1    -1
1    b     1    -1
2    e     1    -1
Run Code Online (Sandbox Code Playgroud)

我想将第二个数据帧的"value3"和"value4"列附加到第一个数据帧但仅限于"no"列的匹配值.所以最后我希望得到一个最终的数据帧,如下所示:

>> print(df)
     no  value1  value2  value3  value4
0    a     0      -1      1       -1
1    b    -1       1      1       -1
2    c    -1       1     NaN      NaN
3    d     0      -1     NaN      NaN
4    e    -1      -1      1       -1
Run Code Online (Sandbox Code Playgroud)

有一个简单的解决方案吗?谢谢你的帮助!

Sco*_*ton 6

使用pd.concat与set_index让大熊猫利用固有的数据对齐.

pd.concat([df.set_index('no'),df2.set_index('no')], axis=1).reset_index()
Run Code Online (Sandbox Code Playgroud)

输出:

  index  value1  value2  value3  value4
0     a       0      -1     1.0    -1.0
1     b      -1       1     1.0    -1.0
2     c      -1       1     NaN     NaN
3     d       0      -1     NaN     NaN
4     e      -1      -1     1.0    -1.0
Run Code Online (Sandbox Code Playgroud)