【发布时间】:2021-06-16 15:53:26
【问题描述】:
我的数据如下所示,我正在尝试按站点名称和年份计算 CRMSE(居中均方根误差)。也许我需要一个 agg 函数或 lambda 函数来在每个 groupby 参数(植物名称、年份)处执行此操作。 df3m1 的数据框数据:
plant_name year month obsvals modelvals
0 ARIZONA I 2021 1 8.90 8.30
1 ARIZONA I 2021 2 7.98 7.41
2 CAETITE I 2021 1 9.10 7.78
3 CAETITE I 2021 2 6.05 6.02
我需要通过植物名称和年份实现的方程式如下所示:
crmse = df3m1.groupby(['plant_name','year'])(( (df3m1.obsvals - df3m1.obsvals.mean()) -
(df3m1.modelvals - df3m1.modelvals.mean()) ) ** 2).mean() ** .5
关于如何同时集成 groupby 和计算,这对我来说有点先进。谢谢你。最终数据框如下所示:
plant_name year crmse
0 ARIZONA I 2021 ?
1 CAETITE I 2021 ?
我已经用 groupby 尝试过这样的事情 -
crmse = df3m1.groupby(['plant_name','year'])(( (df3m1.obsvals -
df3m1.obsvals.mean()) - (df3m1.modelvals - df3m1.modelvals.mean()) )
** 2).mean() ** .5
但会出现这样的错误:
TypeError: 'DataFrameGroupBy' object is not callable
【问题讨论】:
标签: pandas group-by calculation