繁体   English   中英

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM