【发布时间】:2021-09-05 11:26:56
【问题描述】:
我正在尝试编写然后应用一个函数,该函数将使用数据帧第二列上的“groupby”将回归系数乘以数据帧单列中的数据值。我的数据在 df 中如下所示:
plant_name year month wind_speed_ms
0 ARIZONA I 1991 1 6.99
1 ARIZONA I 1991 2 7.00
2 ARIZONA I 1991 3 6.41
3 ARIZONA I 1991 4 6.18
4 CAETITE II 1991 1 6.69
5 CAETITE II 1991 2 6.21
coeff 是下面的熊猫:
plant_name slopex intercept
0 ARIZONA I 1.033109 -0.353939
1 CAETITE II 0.967414 0.194396
结果应如下所示:
plant_name year month adjusted_wind_speed
0 ARIZONA I 1991 1 6.867
1 ARIZONA I 1991 2 6.878
2 ARIZONA I 1991 3 6.268
3 ARIZONA I 1991 4 6.031
4 CAETITE II 1991 1 6.666
5 CAETITE II 1991 2 6.202
我的想法是,这应该可以通过编写一个函数并通过在“植物名称”上使用 groupby 来应用它来解决,但我得到了这个“关键错误”
KeyError: 'slopex'
我正在尝试的代码:
def ADJUST(slopex, intercept):
adj_df = coeff.slopex * df["wind_speed_ms"] + coeff.intercept
return adj_df
c_adj = (df.groupby(['plant_name','year','month'])[['wind_speed_ms']].apply(lambda x:
ADJUST(x['slopex'],x['intercept']))).to_frame(name='c_adj').reset_index().round(2)
【问题讨论】:
标签: pandas function group-by pandas-groupby apply