Skip to main content
 首页 » 编程设计

python之合并只有少数相同项目的 2 个数据框

2025年05月04日18unruledboy

我正在寻找将 2 个数据框与项目和一些数字合并。让我们假设第一列是名字,第二列是这个名字赚了多少钱,第三列是他们工作了多少小时。我正在寻找以我将在示例中向您展示的方式合并它们。希望一切都会清楚。我没有在这里尝试任何特别的东西,我想应该有一个函数可以以惊人的方式实现它。

谢谢大家!

第一个数据框

name  money hours  
------------------ 
name0 1234  50 
name1 4321  50 
name2 1234  40 
name3 1234  50 
name4 4321  50 
name5 1234  40 
name6 1234  50 
name7 4321  50 
name8 1234  40 

第二个数据框

name  money hours  
------------------ 
name1 200   4 
name4 100   5 
name6 300   6 
name7 300   10 
name8 400   14 
name1 100   10 
name7 200   5 
name7 100   3 

输出应该是这样的:

name  money hours  
------------------ 
name0 1234  50 
name1 4621  64 
name2 1234  40 
name3 1234  50 
name4 4421  55 
name5 1234  40 
name6 1534  56 
name7 4921  68 
name8 1634  54 

请您参考如下方法:

我认为这不是真正的合并,因为您有需要聚合的重复名称。这看起来像一个 concat + groupby + sum


pd.concat([df1, df2]).groupby('name', as_index=False).sum() 

    name  money  hours 
0  name0   1234     50 
1  name1   4621     64 
2  name2   1234     40 
3  name3   1234     50 
4  name4   4421     55 
5  name5   1234     40 
6  name6   1534     56 
7  name7   4921     68 
8  name8   1634     54