Pandy: wyodrębnij wartość kolumny na podstawie innej kolumny
Możesz użyć funkcji query() w pandach, aby wyodrębnić wartość z jednej kolumny na podstawie wartości z innej kolumny.
Ta funkcja wykorzystuje następującą podstawową składnię:
df. query (" team=='A' ")[" points "]
Ten konkretny przykład wyodrębni każdą wartość z kolumny punktów , gdzie kolumna zespołu jest równa A.
Poniższe przykłady pokazują, jak w praktyce używać tej składni z następującą ramką DataFrame pand:
import pandas as pd #createDataFrame df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'], ' position ': ['G', 'G', 'F', 'F', 'G', 'G', 'F', 'F'], ' points ': [11, 28, 10, 26, 6, 25, 29, 12]}) #view DataFrame print (df) team position points 0 AG 11 1 AG 28 2 AF10 3AF 26 4 BG 6 5 BG 25 6 BF 29 7 BF 12
Przykład 1: Wyodrębnij wartości kolumn na podstawie spełnionego warunku
Poniższy kod pokazuje, jak wyodrębnić każdą wartość z kolumny punktów , w której wartość w kolumnie zespołu jest równa „A”:
#extract each value in points column where team is equal to 'A' df. query (" team=='A' ")[" points "] 0 11 1 28 2 10 3 26 Name: points, dtype: int64
Ta funkcja zwraca cztery wartości w kolumnie punktów , gdzie odpowiadająca wartość w kolumnie zespołu jest równa „A”.
Przykład 2: Wyodrębnij wartości kolumn na podstawie jednego z wielu spełnionych warunków
Poniższy kod pokazuje, jak wyodrębnić każdą wartość z kolumny punktów , gdzie wartość w kolumnie zespołu jest równa „A” lub wartość w kolumnie pozycji jest równa „G”:
#extract each value in points column where team is 'A' or position is 'G' df. query (" team=='A' | position=='G' ")[" points "] 0 11 1 28 2 10 3 26 4 6 5 25 Name: points, dtype: int64
Ta funkcja zwraca sześć wartości w kolumnie punktów , gdzie odpowiadająca wartość w kolumnie zespołu jest równa „A” lub wartość w kolumnie pozycji jest równa „G”.
Przykład 3: Wyodrębnij wartości kolumn na podstawie spełnienia wielu warunków
Poniższy kod pokazuje, jak wyodrębnić każdą wartość z kolumny punktów , gdzie wartość w kolumnie zespołu jest równa „A” , a wartość w kolumnie pozycji jest równa „G”:
#extract each value in points column where team is 'A' and position is 'G' df. query (" team=='A' & position=='G' ")[" points "] 0 11 1 28 Name: points, dtype: int64
Ta funkcja zwraca dwie wartości w kolumnie punktów , gdzie odpowiadająca wartość w kolumnie zespołu jest równa „A” , a wartość w kolumnie pozycji jest równa „G”.
Dodatkowe zasoby
Poniższe samouczki wyjaśniają, jak wykonywać inne typowe zadania w pandach:
Pandy: jak wybierać kolumny na podstawie warunku
Pandy: usuń wiersze na podstawie wielu warunków
Pandy: zaktualizuj wartości kolumn w oparciu o inną DataFrame