基于多列将函数应用于pandas groupby

时间:2021-03-02 04:21:38

标签: dataframe pandas-groupby

我有一个看起来像的熊猫数据框

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 用作字典)我想知道如何有效地做到这一点。

0 个答案:

没有答案
相关问题