Pandalar: pivot tabloya filtre nasıl eklenir?


Pandalar pivot tablosuna filtre koşulu eklemek için aşağıdaki temel sözdizimini kullanabilirsiniz:

 df[df. col1 == ' A ']. pivot_table (index=' col1 ', values=[' col2 ', ' col3 '], aggfunc=' sum ')

Bu özel örnek, col1’e göre gruplandırılmış col2 ve col3 değerlerinin toplamını görüntüleyen bir pivot tablo oluşturur.

Pivot_table() işlevinden önceki filtre, yalnızca orijinal DataFrame’in sütun1’indeki değerin “A” değerine sahip olduğu satırları dahil etmek istediğimizi belirtir.

Aşağıdaki örnek, bu sözdiziminin pratikte nasıl kullanılacağını gösterir.

Örnek: Pandalar pivot tablosuna nasıl filtre eklenir?

Çeşitli basketbol oyuncuları hakkında bilgi içeren aşağıdaki pandalar DataFrame’e sahip olduğumuzu varsayalım:

 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

Pandalarda yalnızca orijinal DataFrame’in puan sütununda bir değere sahip olduğu satırlar için takıma göre gruplandırılmış puan ve destek sütunlarındaki değerlerin toplamını görüntüleyen bir pivot tablo oluşturmak için aşağıdaki kodu kullanabiliriz . “A”ya eşit takım :

 #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

Pivot tablonun yalnızca takımın “A”ya eşit olduğu satırlar için puan ve destek sütunlarının değerlerini özetlediğini unutmayın.

Ayrıca & ve | operatörlerini de kullanabilirsiniz. “VE” veya “VEYA” mantığını kullanan bir filtre uygulamak için.

Örneğin, orijinal DataFrame’in takım sütunundaki değerin “A” veya “B”ye eşit olduğu satırları filtreleyen bir pivot tablo oluşturmak için aşağıdaki sözdizimini kullanabiliriz:

 #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

Pivot tablonun yalnızca takımın “A” veya “B”ye eşit olduğu satırlar için puan ve destek sütunlarındaki değerleri özetlediğini unutmayın.

Not : Pandaların pivot_table() işlevinin tam belgelerini burada bulabilirsiniz.

Ek kaynaklar

Aşağıdaki eğitimlerde pandalarda diğer ortak görevlerin nasıl gerçekleştirileceği açıklanmaktadır:

Pandalar: Pivot tablo sütundaki değerlere göre nasıl sıralanır
Pandalar: Değerlerin toplamını içeren bir pivot tablo nasıl oluşturulur?
Pandalar: Pivot tabloya alt toplamlar nasıl eklenir?
Pandalar: Pivot tablodaki sütun adları nasıl değiştirilir?

Yorum ekle

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir