【问题标题】:Pandas Calculate Average Bias By Rows from 2 ColumnsPandas 按 2 列中的行计算平均偏差
【发布时间】:2021-06-16 14:15:19
【问题描述】:

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

感谢您的宝贵时间,

【问题讨论】:

    标签: python pandas dataframe row calculation


    【解决方案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
    

    【讨论】:

    • SpecificationError: 不支持嵌套重命名器 - 当我尝试您的解决方案时,由于某种原因出现此错误。
    猜你喜欢
    • 2015-07-03
    • 2020-07-27
    • 2013-09-06
    • 1970-01-01
    • 2022-06-27
    • 2019-09-27
    • 2013-12-21
    • 2023-01-19
    • 2020-05-13
    相关资源
    最近更新 更多