使用引用组规范化Pandas GroupBy数据帧中的数据

问题描述 投票:2回答:1

我有一个由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个回答
2
投票

使用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

除法沿着第0轴的第一级对齐。

© www.soinside.com 2019 - 2024. All rights reserved.