如何在数据透视表中添加计算出的比率?

时间:2019-04-22 18:41:27

标签: python python-3.x pandas pivot-table

我希望将计算出的字段(比率)添加到熊猫数据透视表。 与此问题(How to add calculated % to a pandas pivottable类似,我无法使用我的代码。

我正在尝试获取电子邮件的最近打开率%。一个简单的比率,其公式如下所示: dst ['perc'] =(dst ['recency_opened'] / dst ['recency_sent'])

 # My Pivot Table code: 
 emails = 
 pd.pivot_table(dst,'emails_opened','emails_sent','recency_opened', 
 'recency_sent', 'perc'],['segment', 'hcp_type'], aggfunc='sum', 
 fill_value=None, margins=True, dropna=True, margins_name='Total')

 emails

结果是这样的:

                perc    recency_opened  recency_sent
hcp_type            
Doctor          113.0   113             150
Nurse           33.0     33              37
Total           146.0   146             187

但是我的预期结果应该是:

                perc    recency_opened  recency_sent
hcp_type            
Doctor          0.753   113             150
Nurse           0.891    33              37
Total                   146             187

或者,我也可以使用DataFrame(不一定是数据透视表),因为我真的很想分析电子邮件新近打开率%。

1 个答案:

答案 0 :(得分:0)

您将opened除以sent吗?

>>> import pandas as pd
>>> df = pd.DataFrame([[113, 150], [33, 37]],
                  columns=['opened', 'sent'], index=['Doctor', 'Nurse'])
>>> df['ratio (%)'] = df['opened']/df['sent']
>>> df

        opened  sent  ratio (%)
Doctor     113   150   0.753333
Nurse       33    37   0.891892