我有一个如下所示的数据框,我试图通过比较两列数据——“obsvals”和“modelvals”列来计算一个简单的偏差。我需要在每个月从 'modelvals' 中减去 'obsvals' 并将这些差异相加以计算第 1 个月和第 2 个月的累积偏差。我不确定如何在 python 中做到这一点。我猜是使用 groupby 'plant_name' 和 lambda 函数的组合..?
这是数据框:
plant_name year month obsvals modelvals Bias
0 ARIZONA I 2021 1 8.90 8.30 0.60
1 ARIZONA I 2021 2 7.98 7.41 0.57
3 CAETITE I 2021 1 9.10 7.78 1.32
4 CAETITE I 2021 2 6.05 6.02 0.03
我的最终答案应该是这样的:
plant_name year Bias
0 ARIZONA I 2021 0.58
1 CAETITE I 2021 0.67
感谢您的时间,
答案 0 :(得分:1)
IIUC,你需要groupby
:
df = df.groupby(['plant_name','year']).agg({'Bias': np.mean}).reset_index()
plant_name year Bias
0 ARIZONAI 2021 0.585
1 CAETITEI 2021 0.675