Comment puis-je obtenir le numéro de la ligne dans un cadre de données contenant une certaine valeur dans une colonne donnée à l'aide de pandas? Par exemple, j'ai le dataframe suivant:
ClientID LastName
0 34 Johnson
1 67 Smith
2 53 Brows
Comment puis-je trouver le numéro de la ligne qui a "Smith" dans la colonne "LastName"?
Pour obtenir tous les indices qui correspondent à 'Smith'
>>> df.loc[df['LastName']=='Smith'].index
Int64Index([1], dtype='int64')
ou
>>> df.loc[df['LastName']=='Smith'].index.values
array([1])
ou s'il n'y en a qu'un et que vous voulez l'entier, juste un sous-ensemble
>>> df.loc[df['LastName']=='Smith'].index[0]
1
df.index[df.LastName == 'Smith']
Ou
df.query('LastName == "Smith"').index
Renverra tous les index de ligne où LastName
est Smith
Int64Index([1], dtype='int64')
df.loc[df.LastName == 'Smith']
retournera la ligne
ClientID LastName
1 67 Smith
et
df.loc[df.LastName == 'Smith'].index
renverra l'index
Int64Index([1], dtype='int64')
REMARQUE: Les noms de colonne 'Nom de famille' et 'Nom de famille' ou même 'nom de famille' sont trois noms uniques. La meilleure pratique consiste à vérifier d’abord le nom exact à l’aide de df.columns. Si vous avez vraiment besoin de supprimer les noms de colonne de tous les espaces blancs, vous pouvez d'abord faire
df.columns = [x.strip().replace(' ', '') for x in df.columns]
len(df[df["Lastname"]=="Smith"].values)
count_smiths = (df['LastName'] == 'Smith').sum()