Pandas 分组占比

分组占比

背景:
求每个用户做题的通过率:先算出用户总的做题数量,再算出用户通过的做题数量。
pandas的groupby用法

## 总的数量
count_df = df.groupby('user_id')["if_pass"].count()
test_df = pd.DataFrame(count_df)
test_df = test_df.reset_index()
test_df = test_df.rename(columns={'if_pass':'all_num'}) ##生成数据框
## 通过数量
sum_df = df.groupby('user_id')["if_pass"].sum()
test_df_pass = pd.DataFrame(sum_df)
test_df_pass = test_df_pass.reset_index()
test_df_pass = test_df_pass.rename(columns={'if_pass':'pass_num'})
## 合并,相除得到分组咋办
test_df_all = pd.merge(test_df,test_df_pass,how='left',on=['user_id','user_id'])
test_df_all['pass_rate'] =  test_df_all['pass_num']/test_df_all['all_num']

每个值占该列的比例:

df['Prices'] = df['Prices']/df['Prices'].sum()

猜你喜欢

转载自blog.csdn.net/minixuezhen/article/details/80906730