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()
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章