web-dev-qa-db-fra.com

Comment obtenir le numéro de ligne dans le cadre de données dans les pandas?

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"?

27
sprogissd

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
29
joelostblom
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')
8
piRSquared
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]
4
Vaishali
 len(df[df["Lastname"]=="Smith"].values)
2
Veera Samantula
count_smiths = (df['LastName'] == 'Smith').sum()
1
Scott Boston