web-dev-qa-db-fra.com

Compte de valeur unique dans les pandas de la colonne

J'ai une base de données et je regarde une colonne dans la base de données appelée noms 

array(['Katherine', 'Robert', 'Anne', nan, 'Susan', 'other'], dtype=object)

J'essaie de passer un appel pour me dire combien de fois chacun de ces noms uniques apparaît dans la colonne, par exemple, s'il y a 223 instances de Katherine, etc., comment procéder. Je sais que value_counts ne montre que 1 pour chacun d'eux car ce sont des valeurs uniques distinctes

3
kwashington122

Si je vous ai bien compris, vous pouvez utiliser pandas.Series.value_counts .

Exemple:

import pandas as pd
import numpy as np

s = pd.Series(['Katherine', 'Robert', 'Anne', np.nan, 'Susan', 'other'])

s.value_counts()

Katherine    1
Robert       1
other        1
Anne         1
Susan        1
dtype: int64

Les données que vous avez fournies ne portent qu'un nom de chaque nom. Voici donc un exemple avec plusieurs entrées "Katherine":

s = pd.Series(['Katherine','Katherine','Katherine','Katherine', 'Robert', 'Anne', np.nan, 'Susan', 'other'])

s.value_counts()

Katherine    4
Robert       1
other        1
Anne         1
Susan        1
dtype: int64

Appliqué à votre Dataframe, vous appellerez ceci comme suit:

df['names'].value_counts()
5
ade1e

Vous pouvez utiliser group by pour y parvenir:

df[['col1']].groupby(['col1']).agg(['count'])
0
Istvan