问题描述
import pandas as pd
df = pd.DataFrame(
{'gender':['F','F','M','M'],'mature':[0,1,1],'cta' :[1,1]}
)
df['gender'] = df['gender'].astype('category')
df['mature'] = df['mature'].astype('category')
df['cta'] = pd.to_numeric(df['cta'])
df
我计算了总和(用户点击了多少次)和总计(已发送邮件的数量)。我想弄清楚如何计算定义为点击次数/总百分比的百分比,以及如何获取数据框作为输出。
temp_groupby = df.groupby('gender').agg({'cta': [('clicks','sum'),('total','count')]})
temp_groupby
解决方法
我认为这意味着您需要平均水平,将新的元组添加到列表中,例如:
mydict = {'anna': 1,'bobby': 3,'dean': 120}
为避免使用temp_groupby = df.groupby('gender').agg({'cta': [('clicks','sum'),('total','count'),('perc','mean')]})
print (temp_groupby)
cta
clicks total perc
gender
F 3 5 0.6
M 2 5 0.4
,请在MultiIndex in columns
之后指定列:
groupby
或使用命名聚合:
temp_groupby = df.groupby('gender')['cta'].agg([('clicks','mean')]).reset_index()
print (temp_groupby)
gender clicks total perc
0 F 3 5 0.6
1 M 2 5 0.4