Jak uzyskać numery wierszy w ramce danych pandas


Często możesz chcieć uzyskać numery wierszy w ramce danych pandy, które zawierają określoną wartość.

Na szczęście można to łatwo zrobić za pomocą funkcji .index .

W tym samouczku przedstawiono kilka przykładów praktycznego wykorzystania tej funkcji.

Przykład 1: Uzyskaj numery wierszy odpowiadające określonej wartości

Załóżmy, że mamy następującą ramkę DataFrame pand:

 import pandas as pd

#createDataFrame
df = pd.DataFrame({'points': [25, 12, 15, 14, 19],
                   'assists': [5, 7, 7, 9, 12],
                   'team': ['Mavs', 'Mavs', 'Spurs', 'Celtics', 'Warriors']})

#view DataFrame 
print (df)

        team assists points
0 25 5 Mavs
1 12 7 Mavs
2 15 7 Spurs
3 14 9 Celtics
4 19 12 Warriors

Możemy użyć następującej składni, aby uzyskać numery linii, w których „zespół” równa się Mavs:

 #get row numbers where 'team' is equal to Mavs
df[df[' team '] == ' Mavs ']. index

Int64Index([0, 1], dtype='int64')

Widzimy, że nazwa zespołu jest równa „Mavs” w wierszach o indeksach 0 i 1 .

Możemy również uzyskać numery linii, w których nazwa zespołu znajduje się na określonej liście nazw zespołów:

 #get row numbers where 'team' is equal to Mavs or Spurs
filter_list = [' Mavs ', ' Spurs ']

#return only rows where team is in the list of team names
df[df. team . isin (filter_list)]. index

Int64Index([0, 1, 2], dtype='int64')

Widzimy, że nazwa zespołu to „Mavs” lub „Spurs” w wierszach o indeksach 0 , 1 i 2 .

Przykład 2: Uzyskaj unikalny numer wiersza

Załóżmy, że mamy następującą ramkę DataFrame pand:

 import pandas as pd

#createDataFrame
df = pd.DataFrame({'points': [25, 12, 15, 14, 19],
                   'assists': [5, 7, 7, 9, 12],
                   'team': ['Mavs', 'Mavs', 'Spurs', 'Celtics', 'Warriors']})

Jeśli wiesz, że pojedynczy wiersz odpowiada określonej wartości, możesz pobrać ten unikalny numer wiersza, korzystając z następującej składni:

 #get the row number where team is equal to Celtics
df[df[' team '] == ' Celtics ']. index [ 0 ]

3

W wierszu nr 3 o indeksie widzimy, że zespół jest równy „Celtics”.

Przykład 3: Uzyskaj sumę numerów linii

Załóżmy, że mamy następującą ramkę DataFrame pand:

 import pandas as pd

#createDataFrame
df = pd.DataFrame({'points': [25, 12, 15, 14, 19],
                   'assists': [5, 7, 7, 9, 12],
                   'team': ['Mavs', 'Mavs', 'Spurs', 'Celtics', 'Warriors']})

Jeśli chcesz poznać całkowitą liczbę wierszy, w których kolumna ma określoną wartość, możesz użyć następującej składni:

 #find total number of rows where team is equal to Mavs
len (df[df[' team '] == ' Celtics ']. index )

2

Widzimy, że ta drużyna jest równa „Mavs” w sumie w 2 liniach.

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak wykonywać inne typowe zadania w pandach:

Jak znaleźć unikalne wartości w wielu kolumnach w Pandach
Jak filtrować ramkę danych Pandas pod wieloma warunkami
Jak policzyć brakujące wartości w Pandas DataFrame

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *