将行的总和除以数据透视表中的一个多索引列

时间:2019-06-27 18:33:17

标签: python pandas pivot-table multi-index

我有一个多索引数据透视表,当我将其导出到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”来获得Margin列。

我尝试通过按收入划分利润率来创建新列,但得到KeyError: 'Revenue'。我尝试用以下方法做到这一点:

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

其中图形是我的数据框的名称。我也尝试使用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"]

0 个答案:

没有答案