df1拥有A、B两列,df1的C列数值为多条件求和,为同时满足df2中D等于A1、E等于B1的行对应的F列数值之和
时间: 2024-04-16 08:25:56 浏览: 103
在Python中给Nan值更改为0的方法
要计算df1的C列,根据多个条件从df2中获取对应行的F列数值,并求和,可以使用以下代码:
```python
df1['C'] = df1.apply(lambda row: df2[(df2['D'] == row['A']) & (df2['E'] == row['B'])]['F'].sum(), axis=1)
```
这将使用`apply()`函数来对df1的每一行进行操作。对于每一行,`lambda`函数将根据条件`(df2['D'] == row['A']) & (df2['E'] == row['B'])`从df2中筛选出满足条件的行,并获取相应的F列数值。然后,`sum()`函数计算这些数值的总和,并将结果赋值给df1的C列。
请注意,上述代码中假设df1和df2具有相同的索引结构,即相应行的A和B值是匹配的。如果索引结构不匹配,您可能需要进行一些预处理操作,例如重新索引或合并数据框,以确保能够正确匹配条件。
阅读全文