Нормализация данных в фрейме данных Pandas GroupBy с использованием контрольной группы - PullRequest
0 голосов
/ 14 февраля 2019

У меня есть кадр данных Pandas, полученный в результате операции groupby ().Этот фрейм данных имеет два индекса (год, месяц).Как я могу нормализовать столбец относительно соответствующего месяца в определенном году?

Мой фрейм данных выглядит следующим образом:

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

Я бы хотел, чтобы результирующий фрейм данных был разделен на каждое значениек соответствующему месячному значению в 2002 году. Таким образом, выражая все значения относительно уровней 2002 года.Это приведет к тому, что значения за 2002 год будут равны 1,0 для обоих месяцев.

Какой самый эффективный способ сделать это?Цени любую помощь!

1 Ответ

0 голосов
/ 14 февраля 2019

Используйте DataFrame.div с аргументом level.

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 th ось.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...