[英]calculate ratio with pandas
我有一個這樣的數據框:
id-customer status
1 Won
1 Won
2 Won
2 Won
3 Not won
並且我喜歡添加一個新的列,它是一個計算的贏率:“贏得”的數量除以由 id-customer 分組的總數。
所以我應該有一個這樣的數據框:
id-customer status winrate
1 Won 1 (2/2)
1 Won 1 (2/2)
2 Won 1 (2/2)
2 Won 1 (2/2)
3 Not won 0 (0/1)
我嘗試這樣:
df_winrate=df.groupby(['id-customer'],as_index=False)['status'].sum()
但它沒有用
你能幫我計算一下勝率欄嗎?
謝謝
使用groupby
並使用transform
僅將sum
與size
的比率transform
為原始結果即可。
g = df.status.eq('Won').groupby(df['id-customer'])
g.transform('sum')/g.transform('size')
0 1.0
1 1.0
2 1.0
3 1.0
4 0.0
您應該嘗試按狀態分組,然后獲得組 Won 和 Not Won 最終您可以創建一個數學方程式來拉出比率。
data = df.groupby(['status']) won = data.get_group('Won') not_won = dic4.get_group('Not Won')
*小心你的索引..似乎你有重復
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.