Wie kann ich mit Pandas die Nummer der Zeile in einem Datenrahmen ermitteln, die einen bestimmten Wert in einer bestimmten Spalte enthält? Ich habe zum Beispiel den folgenden Datenrahmen:
ClientID LastName
0 34 Johnson
1 67 Smith
2 53 Brows
Wie kann ich die Nummer der Zeile finden, die den Wert 'Smith' in der Spalte 'LastName' enthält?
Um alle Indizes zu erhalten, die mit 'Smith'
>>> df.loc[df['LastName']=='Smith'].index
Int64Index([1], dtype='int64')
oder
>>> df.loc[df['LastName']=='Smith'].index.values
array([1])
oder wenn es nur einen gibt und Sie die ganze Zahl wollen, unterteilen Sie einfach
>>> df.loc[df['LastName']=='Smith'].index[0]
1
df.index[df.LastName == 'Smith']
Oder
df.query('LastName == "Smith"').index
Gibt alle Zeilenindizes zurück, bei denen Nachname
Schmied
ist
Int64Index([1], dtype='int64')
df.loc[df.LastName == 'Smith']
gibt die Zeile
ClientID LastName
1 67 Smith
und
df.loc[df.LastName == 'Smith'].index
gibt den Index
Int64Index([1], dtype='int64')
HINWEIS: Die Spaltennamen 'LastName' und 'Last Name' oder auch 'lastname' sind drei eindeutige Namen. Am besten überprüfen Sie zunächst den genauen Namen mit df.columns. Wenn Sie die Spaltennamen wirklich von allen Leerzeichen befreien müssen, können Sie zunächst Folgendes tun
df.columns = [x.strip().replace(' ', '') for x in df.columns]