按多列分组的熊猫df百分比计数

时间:2020-08-25 14:55:59

标签: pandas dataframe count percentage explode

我有两只熊猫df。数据按月,类别,产品分组。它还有一个“支出”列。我需要计算支出百分比列。以下是df_raw的示例:

                                         spend_sum
category     month     product_list
Home          1         A                    10
                        B                    20
                        C                    30

Home          2         A                    40
                        B                    50
                        C                    60

下面是df_new的示例:

                                         spend_sum
category     month     product_list
Home          1         A                    1
                        B                    2
                        C                    3

Home          2         A                    20
                        B                    10
                        C                    5

我的代码是:

df_raw = df.explode('product_list').groupby(['category', 'month', 'product_list']).count()

我需要除df_new['spend_sum'] / df_raw['spend_sum'] 所需的输出是:

                                         percentage
category     month     product_list
Home          1         A                    0.1
                        B                    0.1
                        C                    0.1

Home          2         A                    0.5
                        B                    0.2
                        C                    0.008

1 个答案:

答案 0 :(得分:1)

这将做到:

df_new['pct'] = df_new['spend_sum']/df_raw['spend_sum']

                             spend_sum       pct
category month product_list
Home     1     A                     1  0.100000
               B                     2  0.100000
               C                     3  0.100000
         2     A                    20  0.500000
               B                    10  0.200000
               C                     5  0.083333