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
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()
Vous pouvez utiliser group by pour y parvenir:
df[['col1']].groupby(['col1']).agg(['count'])