【问题标题】:Normalizing data in a Pandas GroupBy dataframe using a reference group使用参考组规范化 Pandas GroupBy 数据帧中的数据
【发布时间】:2019-02-15 01:53:10
【问题描述】:

我有一个由 groupby() 操作产生的 Pandas 数据框。此数据框有两个索引(年、月)。如何相对于特定年份的相应月份对列进行规范化?

我的数据框如下所示:

            value
year  month
2000      1 1234
          2 4567
2001      1 2345
          2 5678
2002      1 3456
          2 6789

我希望生成的数据框将每个值除以 2002 年相应的月度值。因此,表示相对于 2002 年水平的所有值。这将导致 2002 年两个月的值都是 1.0。

最有效的方法是什么?感谢任何帮助!

【问题讨论】:

    标签: python pandas dataframe pandas-groupby


    【解决方案1】:

    DataFrame.divlevel 参数一起使用。

    df.div(df.xs(2002), level=1, axis=0)
    
                   value
    year month          
    2000 1      0.357060
         2      0.672706
    2001 1      0.678530
         2      0.836353
    2002 1      1.000000
         2      1.000000
    

    在哪里,

    df.xs(2002)
    
           value
    month       
    1       3456
    2       6789
    

    分割沿第 0th 轴的第一级对齐。

    【讨论】:

      猜你喜欢
      • 2020-05-31
      • 1970-01-01
      • 1970-01-01
      • 2012-09-13
      • 2021-05-25
      • 2017-01-07
      • 2020-12-15
      • 1970-01-01
      • 2015-09-16
      相关资源
      最近更新 更多