Python Pandas compter les Occurrences d'une valeur Spécifique
Je suis en train d'essayer de trouver le nombre de fois où une certaine valeur s'affiche dans une colonne.
J'ai fait le dataframe avec data = pd.DataFrame.from_csv('data/DataSet2.csv')
et maintenant je veux savoir le nombre de fois que quelque chose s'affiche dans une colonne. Comment est-ce fait?
Je pensais que c'était le ci-dessous, où je suis à la recherche dans l'enseignement de la colonne et en comptant le nombre de fois ?
se produit.
Le code ci-dessous montre que je suis en train d'essayer de trouver le nombre de fois 9th
s'affiche et le message d'erreur que je reçois lorsque j'exécute le code
Code
missing2 = df.education.value_counts()['9th']
print(missing2)
Erreur
KeyError: '9th'
df.education.value_counts()['?']
doit être correcte. Qu'est-ce que cela vous donne à la place? (montrer un peu de code et de sortie)- mise à jour de la question
- Peut-être vous avez besoin
print df[df.education == '9th'].count()
- vous êtes une bouée de sauvetage!
Vous devez vous connecter pour publier un commentaire.
Vous pouvez créer
subset
de données avec votre condition et ensuite utiliserforme
oulen
:La Performance est intéressante, la solution la plus rapide est de comparer un tableau numpy et
sum
:Code:
Couple de façons à l'aide de
count
ousum
Une élégante façon de compter les occurrences de
'?'
ou n'importe quel symbole dans n'importe quelle colonne, est d'utiliser la fonction intégrée dansisin
d'un dataframe objet.Supposons que nous avons chargé de la "Automobile" dataset en
df
objet.Nous ne savons pas les colonnes qui contiennent des valeurs manquantes (
'?'
symbole), alors laissez-le faire:DataFrame.isin(values)
document officiel dit:Noter que
isin
accepte un itérable en entrée, donc nous avons besoin pour passer d'une liste contenant la cible symbole pour cette fonction.df.isin(['?'])
va retourner un booléen dataframe comme suit.Pour compter le nombre d'occurrence de symbole cible dans chaque colonne, nous allons prendre
sum
plus de toutes les lignes de la ci-dessus dataframe en indiquantaxis=0
.La finale (tronquée) résultat montre ce que nous attendons:
Essayez ceci:
facile, mais pas efficace: