下面顯示的是來自 DataFrame 的詳細資訊

下面是用于添加百分比列的語法,
df1 = df[['Attrition', 'Gender',"JobSatisfaction"]]
df1 = df1.groupby(['Attrition','Gender'])['Job_Satisfaction'].value_counts().reset_index(name='count')
df1['%'] = 100 * df1['count']/ df1.groupby(['Attrition','Gender','Job_Satisfaction'])['count'].transform('sum')
df1 = df1 .sort_values(by=['Gender','Attrition','Job_Satisfaction'])
df1
下面是我得到的結果

如何添加如下所示的百分比列,

uj5u.com熱心網友回復:
您可以使用 100 進行歸一化groupby.transform('sum')并乘以 100:
df['%'] = df['count'].div(df.groupby('Gender')['count'].transform('sum')).mul(100)
對于字串:
df['%'] = (df['count']
.div(df.groupby('Gender')['count'].transform('sum')
.mul(100).astype(int).astype(str).add('%')
)
uj5u.com熱心網友回復:
您想要的百分比分母是總性別數,因此df1.groupby(['Attrition','Gender','Job_Satisfaction'])不正確。改為使用df1.groupby(['Gender'])。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/511890.html
