Comment extraire les noms et valeurs de value_counts() avec pandas en python ?

Published: 23 octobre 2020

Tags: Python; Pandas; DataFrame;

DMCA.com Protection Status

Exemples de comment extraire les noms et valeurs de value_counts() avec pandas en python

Créer une dataframe avec pandas

Commençons par créer une simple dataframe avec pandas:

import pandas as pd
import numpy as np
import random

Surface = [random.choice(['Ocean','Snow','Desert', 'Forest','']) for i in range(20)]
c1 = np.random.uniform(0,1, size=20)
c2 = np.random.uniform(0,1, size=20)
c3 = np.random.uniform(0,1, size=20)

data = {'Surface':Surface,
        'c1':c1, 
        'c2':c2, 
        'c3':c3}

df = pd.DataFrame(data)

print(df)

donne par exemple

   Surface        c1        c2        c3
0   Forest  0.273228  0.547091  0.995114
1   Desert  0.585434  0.229137  0.858714
2           0.215637  0.554016  0.347851
3   Desert  0.684748  0.345694  0.292525
4    Ocean  0.683991  0.916057  0.943469
5   Desert  0.342695  0.024518  0.226359
6     Snow  0.702004  0.520701  0.194929
7   Desert  0.812882  0.978291  0.667365
8    Ocean  0.072272  0.038988  0.391696
9     Snow  0.948763  0.622616  0.298193
10          0.438773  0.024421  0.133489
11  Forest  0.277632  0.775055  0.162494
12    Snow  0.576751  0.840382  0.784162
13   Ocean  0.675573  0.500358  0.968885
14   Ocean  0.717382  0.485487  0.209018
15  Desert  0.473825  0.992767  0.383084
16  Desert  0.918840  0.545654  0.034444
17    Snow  0.820191  0.414088  0.315009
18          0.086068  0.724317  0.009183
19   Ocean  0.099506  0.849096  0.431591

Utiliser value_counts() sur la colonne 'Surface'

Exemple de résultat avec value_counts() sur la colonne 'Surface':

df['Surface'].value_counts()

donne

Desert    6
Ocean     5
Snow      4
          3
Forest    2
Name: Surface, dtype: int64

Récupérer la liste des noms de value_counts ()

Pour obtenir la liste des noms de value_counts (), une solution consiste à utiliser tolist():

df['Surface'].value_counts().index.tolist()

donne:

['Desert', 'Ocean', 'Snow', '', 'Forest']

Obtenir le nom du premier élément de value_counts ()

Exemple de comment obtenir le nom du premier élément de value_counts ()

df['Surface'].value_counts().index.tolist()[0]

donne

'Desert'

Extraire la valeur associée au premier élément de value_counts ()

Exemple de comment extraire la valeur associée au premier élément de value_counts ()

df['Surface'].value_counts()[0]

donne

6

Créer une boucle sur les elements de value_counts()

Créons maintenant une simple boucle for qui parcourt tous les éléments de value_counts ():

for idx,name in enumerate(df['Surface'].value_counts().index.tolist()):
    print('Name :', name)
    print('Counts :', df['Surface'].value_counts()[idx])

donne

Name : Desert
Counts : 6
Name : Ocean
Counts : 5
Name : Snow
Counts : 4
Name : 
Counts : 3
Name : Forest
Counts : 2

Créer un histogramme avec matplotlib

Note: on peut tracer un histogramme avec matplotlib en utilisant value_counts():

import matplotlib.pyplot as plt

df['Surface'].value_counts().plot(kind='bar')

plt.show()

Références