Pandas 根据 2 列的行计算平均偏差
Pandas Calculate Average Bias By Rows from 2 Columns
我有一个如下所示的数据框,我正在尝试通过比较两列数据('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
感谢您的宝贵时间,
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
我有一个如下所示的数据框,我正在尝试通过比较两列数据('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
感谢您的宝贵时间,
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