web-dev-qa-db-fra.com

Pandas pourcentage par valeur dans une colonne

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?

17
SANM2009

Utilisation value_counts avec normalize=True:

df['gender'].value_counts(normalize=True) * 100
35
cs95

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
5
student

trouver le pourcentage de variation cible de déséquilibre de chenck/non.

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

trouver le maximum dans le pourcentage de colonnes ici, pour vérifier combien de # balourd il y

df1=df.diff(periods=1,axis=0)
difvalue=df1[[list(df1.columns)[-1]]].max()
0
Ayyasamy

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
0
Rohith Gunda