[FIXED] So erhalten Sie die Prozentspalte zusammen mit der Wert-/Anzahlspalte

Ausgabe

Unten sind die Details aus einem DataFrame dargestellt

Geben Sie hier die Bildbeschreibung ein

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

Geben Sie hier die Bildbeschreibung ein

Wie kann ich eine unten gezeigte Prozentspalte hinzufügen,
Geben Sie hier die Bildbeschreibung ein

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)

0 Shares:
Leave a Reply

Your email address will not be published. Required fields are marked *

You May Also Like