Pandas: cara menambahkan filter ke tabel pivot
Anda dapat menggunakan sintaks dasar berikut untuk menambahkan kondisi filter ke tabel pivot pandas:
df[df. col1 == ' A ']. pivot_table (index=' col1 ', values=[' col2 ', ' col3 '], aggfunc=' sum ')
Contoh khusus ini membuat tabel pivot yang menampilkan jumlah nilai col2 dan col3 , yang dikelompokkan berdasarkan col1 .
Filter sebelum fungsi pivot_table() menetapkan bahwa kita hanya ingin menyertakan baris yang nilai di col1 DataFrame asli memiliki nilai “A”.
Contoh berikut menunjukkan cara menggunakan sintaksis ini dalam praktiknya.
Contoh: Cara menambahkan filter ke tabel pivot Pandas
Misalkan kita memiliki pandas DataFrame berikut yang berisi informasi tentang berbagai pemain bola basket:
import pandas as pd #createDataFrame df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B', 'C', 'C', 'C', 'C'], ' points ': [4, 4, 2, 8, 9, 5, 5, 7, 8, 8, 4, 3], ' assists ': [2, 2, 5, 5, 4, 7, 5, 3, 9, 8, 4, 4]}) #view DataFrame print (df) team points assists 0 to 4 2 1 to 4 2 2 to 2 5 3 to 8 5 4 B 9 4 5 B 5 7 6 B 5 5 7 B 7 3 8 C 8 9 9 C 8 8 10 C 4 4 11 C 3 4
Kita dapat menggunakan kode berikut untuk membuat tabel pivot di panda yang menampilkan jumlah nilai dalam kolom poin dan bantuan yang dikelompokkan berdasarkan tim hanya untuk baris di mana DataFrame asli memiliki nilai di kolom skor. tim sama dengan “A”:
#create pivot table for rows where team is equal to 'A'
df[df. team == ' A ']. pivot_table (index=' team ', values=[' points ', ' assists '],
aggfunc=' sum ')
assist points
team
At 14 18
Perhatikan bahwa tabel pivot hanya merangkum nilai poin dan kolom bantuan untuk baris di mana tim sama dengan “A”.
Anda juga dapat menggunakan operator & dan | untuk menerapkan filter yang menggunakan logika “DAN” atau “ATAU”.
Misalnya, kita bisa menggunakan sintaks berikut untuk membuat tabel pivot yang memfilter baris dengan nilai di kolom tim DataFrame asli sama dengan “A” atau “B”:
#create pivot table for rows where team is equal to 'A' or 'B'
df[( df.team == ' A ') | (df. team == ' B ')]. pivot_table (index=' team ',
values=[' points ', ' assists '],
aggfunc=' sum ')
assist points
team
At 14 18
B 19 26
Perhatikan bahwa tabel pivot hanya merangkum nilai dalam kolom poin dan bantuan untuk baris di mana tim sama dengan “A” atau “B”.
Catatan : Anda dapat menemukan dokumentasi lengkap fungsi pandas pivot_table() di sini .
Sumber daya tambahan
Tutorial berikut menjelaskan cara melakukan tugas umum lainnya di panda:
Pandas: Cara mengurutkan tabel pivot berdasarkan nilai di kolom
Pandas: Cara membuat tabel pivot dengan jumlah nilai
Pandas: Cara menambahkan subtotal ke tabel pivot
Pandas: Cara mengubah nama kolom di tabel pivot