Pandas 按 2 列的行计算平均偏差

时间:2021-06-16 14:15:19

标签: python pandas dataframe row calculation

我有一个如下所示的数据框,我试图通过比较两列数据——“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

感谢您的时间,

1 个答案:

答案 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
相关问题