Pandas: mengekstrak nilai kolom berdasarkan kolom lain
Anda dapat menggunakan fungsi query() di panda untuk mengekstrak nilai di satu kolom berdasarkan nilai di kolom lain.
Fungsi ini menggunakan sintaks dasar berikut:
df. query (" team=='A' ")[" points "]
Contoh khusus ini akan mengekstrak setiap nilai dari kolom poin dimana kolom tim sama dengan A.
Contoh berikut menunjukkan cara menggunakan sintaksis ini dalam praktiknya dengan pandas DataFrame berikut:
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
Contoh 1: Ekstrak nilai kolom berdasarkan kondisi yang terpenuhi
Kode berikut menunjukkan cara mengekstrak setiap nilai dari kolom poin dimana nilai kolom tim sama dengan “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
Fungsi ini mengembalikan empat nilai di kolom poin dimana nilai terkait di kolom tim sama dengan “A”.
Contoh 2: Ekstrak nilai kolom berdasarkan salah satu dari banyak kondisi yang terpenuhi
Kode berikut menunjukkan cara mengekstrak setiap nilai dari kolom poin dimana nilai kolom tim sama dengan “A” atau nilai kolom posisi sama dengan “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
Fungsi ini mengembalikan enam nilai pada kolom poin dimana nilai terkait pada kolom tim sama dengan “A” atau nilai pada kolom posisi sama dengan “G”.
Contoh 3: Ekstrak nilai kolom berdasarkan beberapa kondisi yang terpenuhi
Kode berikut menunjukkan cara mengekstrak setiap nilai dari kolom poin dimana nilai kolom tim sama dengan “A” dan nilai kolom posisi sama dengan “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
Fungsi ini mengembalikan dua nilai di kolom poin dimana nilai terkait di kolom tim sama dengan “A” dan nilai di kolom posisi sama dengan “G”.
Sumber daya tambahan
Tutorial berikut menjelaskan cara melakukan tugas umum lainnya di panda:
Pandas: cara memilih kolom berdasarkan kondisi
Pandas: menghapus baris berdasarkan beberapa kondisi
Pandas: perbarui nilai kolom berdasarkan DataFrame lain