Ausgabe
Unten sind die Details aus einem DataFrame dargestellt
Unten ist die Syntax, die verwendet wird, um eine Prozentspalte hinzuzufügen,
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
unten sind die Ergebnisse, die ich bekomme
Wie kann ich eine unten gezeigte Prozentspalte hinzufügen,
Lösung
Sie können mit 100 normalisieren groupby.transform('sum')
und multiplizieren:
df['%'] = df['count'].div(df.groupby('Gender')['count'].transform('sum')).mul(100)
Für eine Zeichenfolge:
df['%'] = (df['count']
.div(df.groupby('Gender')['count'].transform('sum')
.mul(100).astype(int).astype(str).add('%')
)
Beantwortet von – mozway
Antwort geprüft von – Mary Flores (FixError Volunteer)