Pandy: jak wybierać wiersze między dwiema wartościami
Możesz użyć następującej podstawowej składni, aby wybrać wiersze w ramce danych pandy, w której kolumna znajduje się pomiędzy dwiema określonymi wartościami:
df_filtered = df[df[' points ']. between ( 25 , 35 )]
W tym konkretnym przykładzie wybierane są wszystkie wiersze, których wartość w kolumnie punktów mieści się w przedziale od 25 do 35.
Jeśli zamiast tego chcesz wybrać wiersze, których wartość w kolumnie punktów nie mieści się w przedziale od 25 do 35, możesz dodać tyldę ( ~ ) przed nazwą kolumny:
df_filtered = df[ ~ df[' points ']. between ( 25 , 35 )]
Poniższe przykłady pokazują, jak zastosować każdą metodę w praktyce.
Przykład: wybierz wiersze pomiędzy dwiema wartościami w Pandach
Załóżmy, że mamy następującą ramkę DataFrame pand, która zawiera informacje o punktach zdobytych przez koszykarzy z różnych drużyn:
import pandas as pd #createDataFrame df = pd. DataFrame ({' team ': ['Mavs', 'Mavs', 'Nets', 'Nets', 'Heat', 'Heat', 'Kings'], ' points ': [22, 28, 35, 34, 29, 28, 23]}) #view DataFrame print (df) team points 0 Mavs 22 1 Mavs 28 2 Nets 35 3 Nets 34 4 Heat 29 5 Heat 28 6 Kings 23
Możemy zastosować następującą składnię, aby wybrać tylko wiersze z ramki DataFrame, których wartość w kolumnie punktów mieści się w przedziale od 25 do 35:
#select rows where value in points column is between 25 and 35
df_filtered = df[df[' points ']. between ( 25 , 35 )]
#view filtered DataFrame
print (df_filtered)
team points
1 Mavs 28
2 Nets 35
3 Nets 34
4 Heat 29
5 Heat 28
Należy pamiętać, że wybrane zostały tylko wiersze, których wartość w kolumnie punktów mieści się w przedziale od 25 do 35.
Należy pamiętać, że funkcja Between() uwzględnia wartości w dolnej i górnej granicy.
Na przykład gracz z wartością punktów 35 został uwzględniony w przefiltrowanej ramce danych.
Jeśli zamiast tego chcesz wybrać tylko wiersze, których wartość w kolumnie punktów nie mieści się w przedziale od 25 do 35, możemy dodać tyldę ( ~ ) przed nazwą kolumny:
#select rows where value in points column is not between 25 and 35
df_filtered = df[ ~ df[' points ']. between ( 25 , 35 )]
#view filtered DataFrame
print (df_filtered)
team points
0 Mavs 22
6 Kings 23
Należy pamiętać, że wybrane zostały tylko wiersze, których wartość w kolumnie punktów nie mieści się w przedziale od 25 do 35.
Uwaga : pełną dokumentację funkcji pandas Between() można znaleźć tutaj .
Dodatkowe zasoby
Poniższe samouczki wyjaśniają, jak wykonywać inne typowe zadania w pandach:
Pandy: wybierz wiersze, w których dwie kolumny są równe
Pandy: wybierz wiersze z DataFrame, używając serii logicznej
Pandy: wybierz wiersze z wartościami NaN