Деление суммы строки на один мультииндексный столбец в pivot_table - PullRequest
0 голосов
/ 27 июня 2019

У меня есть многоиндексная сводная таблица, которая выглядит так, когда я ее экспортирую в Excel:

                                   sum
                                  Amount
Type of Transaction      COGS     Revenue    Margin
Name             
Alex                      12        40         28
Ben                        6        25         19   
Dan                       10        30         20 

Я хочу, чтобы она включала процент маржи следующим образом:

                                   sum
                                  Amount
Type of Transaction      COGS     Revenue    Margin    Margin%
Name             
Alex                      12        40         28         .7
Ben                        6        25         19         .76 
Dan                       10        30         20         .67

Я получил столбец «Маржа», добавив «margins = True» при создании сводной таблицы.

Я попытался создать новый столбец, опустив маржу по доходу, но получил KeyError: 'Revenue'.Я попытался сделать это с:

graph["Margin%"] = graph["Margin"] / graph ["Revenue"]

Где graph - это имя моего dataframe.Я также попытался использовать функцию div (), но не смог заставить ее работать.

graph = pd.pivot_table(df, index=["Name"], columns=["Type of Transaction"], aggfunc=[np.sum], margins = True)

graph = graph.rename(columns={"All":"Margin"})

graph["Margin%"] = graph["Margin"] / graph ["Revenue"]
...