每次df1中的名称和周匹配时,我都会try 将df中的相应值添加到df1

df
                 Name    Week     Value
0                Frank  Week 3       8.0
1                  Bob  Week 3       8.0
2                  Bob  Week 4       8.0
3            Elizabeth  Week 3       4.0
4                Mario  Week 2       1.5
5                Mario  Week 3       2.5
6             Michelle  Week 3       8.0
7             Michelle  Week 4       1.0
8               Darwin  Week 1       1.0
9               Darwin  Week 2       0.5
10              Darwin  Week 3      11.0
11             Collins  Week 1       8.0
12             Collins  Week 2       6.0
13             Collins  Week 3      17.0
14             Collins  Week 4       7.0
15              Alexis  Week 1       1.5
16              Daniel  Week 3       2.0

df1
                Name    Week  Total
0              Frank  Week 1     16
1              Frank  Week 1      3
2              Frank  Week 3     28
3              Frank  Week 3      1
4              Frank  Week 4      3
..               ...     ...    ...
310           Daniel  Week 2     50
311           Daniel  Week 3     56
312           Daniel  Week 4     78
313            Kevin  Week 4    162
314            Kevin  Week 4     46

预期:

df1
                Name    Week  Total
0              Frank  Week 1     16
1              Frank  Week 1      3
2              Frank  Week 3     **36**
3              Frank  Week 3      **9**
4              Frank  Week 4      3
..               ...     ...    ...
310           Daniel  Week 2     50
311           Daniel  Week 3     **58**
312           Daniel  Week 4     78
313            Kevin  Week 4    162
314            Kevin  Week 4     46

推荐答案

使用merge+assign:

out = (df1
  .merge(df, how='left')
  .assign(Total=lambda d: d['Total'].add(d.pop('Value'), fill_value=0))
)

输出:

     Name    Week  Total
0   Frank  Week 1   16.0
1   Frank  Week 1    3.0
2   Frank  Week 3   36.0
3   Frank  Week 3    9.0
4   Frank  Week 4    3.0
...
5  Daniel  Week 2   50.0
6  Daniel  Week 3   58.0
7  Daniel  Week 4   78.0
8   Kevin  Week 4  162.0
9   Kevin  Week 4   46.0

Python相关问答推荐

Python中的锁定类和线程以实现dict移动

Python:MultiIndex Dataframe到类似json的字典列表

Flask:如何在完整路由代码执行之前返回验证

如何在Power Query中按名称和时间总和进行分组

使用Python Cerberus初始化一个循环数据 struct (例如树)(v1.3.5)

在Python中管理多个OpenGVBO和VAO实例

Pandas :多索引组

仅从风格中获取 colored颜色 循环

如何在具有重复数据的pandas中对groupby进行总和,同时保留其他列

numba jitClass,记录类型为字符串

为一个组的每个子组绘制,

如何在表中添加重复的列?

不允许访问非IPM文件夹

Python脚本使用蓝牙运行在Windows 11与raspberry pi4

将pandas导出到CSV数据,但在此之前,将日期按最小到最大排序

如何在Python中获取`Genericums`超级类型?

旋转多边形而不改变内部空间关系

跳过嵌套JSON中的级别并转换为Pandas Rame

为什么在FastAPI中创建与数据库的连接时需要使用生成器?

如何在海上配对图中使某些标记周围的黑色边框