我有一个看起来像的熊猫数据框
df1
name time value
0 John 1 10
1 John 2 20
2 John 3 15
3 John 4 25
4 Mary 1 45
5 Mary 2 60
6 Mary 3 35
7 Mary 4 45
我有另一个数据框,它以某种方式用作字典
df2
name start time end time multiplier
0 John 1 3 2
1 John 3 5 1
2 Mary 1 2 4
3 Mary 2 5 1
我想通过将 df1 中的“值”列与 df2 中的适当乘数相乘来修改 df1 中的“值”列,即选择乘数以使名称一致且时间落在范围 [开始时间、结束时间)内。想要的结果类似于
df
name time value adjusted value
0 John 1 10 20
1 John 2 20 40
2 John 3 15 15
3 John 4 25 25
4 Mary 1 45 180
5 Mary 2 60 60
6 Mary 3 35 35
7 Mary 4 45 45
我可以通过在 df2 中循环不同的名称和开始时间、结束时间并调整 df1 中的相应行来实现。我认为这可以通过 pandas groupby 和 agg 来完成,但我不知道该怎么做。我知道 df1 比 df2 大得多(df2 用作字典)我想知道如何有效地做到这一点。