同行融合两个数据帧

2024-05-08 02:09:07 发布

您现在位置:Python中文网/ 问答频道 /正文

例如,两个名为df1df2的数据帧如下所示:

### df1
Name    Code   Mass
5N11     s1     0.1545
5N12     NaN     0.22 
5N13     s3   0.2123
5N15     s5    0.1486
5N17     NaN    0.2100

### df2
Name    Code   Mass
5N12     s2    0.22 
5N13     NaN   0.2123
5N14     s4    0.35
5N16     s6    0.07
5N17     s7    0.2100

背景介绍:

  • df1df2是两个数据帧,它们都包含某些项目的部分数据。在
  • df1和df2中的一些名称是相同的。

  • 在df1和df2中,对应于相同名称的质量是相等的。

  • 有些行包含有限代码,有些不是。在

我要做的是用名称将这两个数据帧合并在一起,并与其代码和质量合并。在

更新

我的尝试似乎奏效了!在

^{pr2}$

这看起来像是复制了正确的结果。在

enter image description here


Tags: 数据代码name名称s3质量codenan
1条回答
网友
1楼 · 发布于 2024-05-08 02:09:07

df1开始,从df2开始填充,其中缺少df1。这个要求将每个的索引设置为“Name”

快速解决方案

df1.set_index('Name').combine_first(df2.set_index('Name'))

完全解决方案

设置

^{pr2}$

合并结果

df1.set_index('Name').combine_first(df2.set_index('Name')).reset_index()

看起来像:

   Name Code    Mass
0  5N11   s1  0.1545
1  5N12   s2  0.2200
2  5N13   s3  0.2123
3  5N14   s4  0.3500
4  5N15   s5  0.1486
5  5N16   s6  0.0700
6  5N17   s7  0.2100

相关问题 更多 >