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

标签 python pandas dataframe

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

>> 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

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

>> print(df2)
     no  value3  value4
0    a     1    -1
1    b     1    -1
2    e     1    -1

我想将第二个数据框的列“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

有没有简单的解决方案来做到这一点?感谢您的帮助!

最佳答案

使用 pd.concatset_index 让 Pandas 使用内部数据对齐。

pd.concat([df.set_index('no'),df2.set_index('no')], axis=1).reset_index()

输出:

  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

关于python - 我想将一个数据框附加到另一个数据框,即使它们的大小不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46673692/

相关文章:

python - 检查是否为质数然后打印因子

python - 访问元组的元素

python - 绘制 pandas 数据透视表中的前 n 个指标

python - Pandas style.background_gradient 忽略 NaN

python - 无法加入字符串类型的 Pandas 数据框

python - 如何在 pyspark 机器学习中使用 Dataframe?

python - django.core.urlresolvers.NoReverseMatch

python - 在 Ubuntu 上使用 Python 获取监视器分辨率

mysql - 将 Python Pandas 数据框上传到 MySQL - InternalError : 1366, "Incorrect String Value"

python - 如何找到相关矩阵中的高值?