Je veux obtenir un pourcentage d'une valeur particulière dans une colonne DF. Supposons que j'ai une df avec (col1, col2, col3, genre) la colonne de genre a les valeurs de M ou de F. Je souhaite obtenir le pourcentage des valeurs de M et de F dans la df.
J'ai essayé ceci, ce qui me donne le nombre d'instances M et F, mais je les veux sous forme de pourcentage du nombre total de valeurs dans le df.
df.groupby('gender').size()
Quelqu'un peut aider?
Utilisation value_counts
avec normalize=True
:
df['gender'].value_counts(normalize=True) * 100
Si vous n'avez pas besoin de chercher M
et F
des valeurs autres que gender
colonne, vous pouvez peut-être essayer d'utiliser value_counts()
et count()
comme suit:
df = pd.DataFrame({'gender':['M','M','F', 'F', 'F']})
# Percentage calculation
(df['gender'].value_counts()/df['gender'].count())*100
Résultat:
F 60.0
M 40.0
Name: gender, dtype: float64
Ou, en utilisant groupby
:
(df.groupby('gender').size()/df['gender'].count())*100
g = data[Target_col_Y]
df = pd.concat([g.value_counts(),
g.value_counts(normalize=True).mul(100)],axis=1,keys=('counts','percentage'))
print (df)
compte le pourcentage
0 36548 88.734583
1 4640 11.265417
df1=df.diff(periods=1,axis=0)
difvalue=df1[[list(df1.columns)[-1]]].max()
Supposons qu'il existe 200 valeurs dont 120 sont classées dans la catégorie M et 80 dans la catégorie F
1)
df['gender'].value_counts()
output:
M=120
F=80
2)
df['gender'].value_counts(Normalize=True)
output:
M=0.60
F=0.40
)
df['gender'].value_counts(Normalize=True)*100 #will convert output to percentages
output:
M=60
F=40