Есть ли способ разделить мультииндексный фрейм данных на отдельный индексированный фрейм данных? - PullRequest
0 голосов
/ 19 июня 2020

У меня есть многоиндексный ряд, который выглядит так:

                        Value1    Value2
Month  Group  Type
 02      A     Blue       2         3
               Red        5         4
         B     Blue       4         7
               Red        8         12

 03      A     Blue       9         22
               Red        44         5
         B     Blue       45         34
               Red        22         14

Я хотел бы разделить этот фрейм данных с другим здесь:

        Value
Month     
 02       2
 03       10

И разделить на основе индекса месяца . Результат должен быть таким:

                        Value1    Value2
Month  Group  Type
 02      A     Blue       1         1.5
               Red        2.5         2
         B     Blue       2         3.5
               Red        4         6

 03      A     Blue       0.9         2.2
               Red        4.4         0.5
         B     Blue       4.5         3.4
               Red        2.2         1.4

Я пробовал df.div (df2, level = 0), но получил фрейм данных с NaN

1 Ответ

2 голосов
/ 19 июня 2020

Вам нужно выбрать столбец Value для деления на Series и добавить axis=0 для сравнения по индексу:

df = df.div(df2['Value'], level=0, axis=0)
print (df)
                  Value1  Value2
Month Group Type                
2     A     Blue     1.0     1.5
            Red      2.5     2.0
      B     Blue     2.0     3.5
            Red      4.0     6.0
3     A     Blue     0.9     2.2
            Red      4.4     0.5
      B     Blue     4.5     3.4
            Red      2.2     1.4
...