Pandalar: yüzdelerle pivottable nasıl oluşturulur


Pandas’ta belirli bir sütun için toplamın yüzdesini görüntüleyen bir pivot tabloya bir sütun eklemek için aşağıdaki sözdizimini kullanabilirsiniz:

 my_table[' % points '] = (my_table[' points ']/my_table[' points ']. sum ())* 100

Bu özel sözdizimi, puan sütunundaki toplam değerlerin yüzdesini görüntüleyen my_table adlı pivot tabloya % puan adı verilen yeni bir sütun ekler.

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

Örnek: Yüzdelerle Pandalar Özet Tablosu Oluşturma

Farklı basketbol oyuncuları tarafından atılan puanların sayısını gösteren aşağıdaki panda DataFrame’e sahip olduğumuzu varsayalım:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'],
                   ' position ': ['Guard', 'Guard', 'Forward', 'Forward',
                                'Guard', 'Guard', 'Forward', 'Forward'],
                   ' points ': [22, 30, 14, 15, 19, 30, 23, 20]})

#view DataFrame
print (df)

  team position points
0 A Guard 22
1A Guard 30
2 A Forward 14
3 A Forward 15
4 B Guard 19
5 B Guard 30
6 B Forward 23
7 B Forward 20

Takıma ve konuma göre puanların toplamını gösteren bir pivot tablo oluşturmak için pivot_table() işlevini kullanabiliriz:

 #create pivot table to calculate sum of points by team and position
my_table = pd. pivot_table (df, index=[' team ', ' position '], aggfunc=' sum ')

#view pivot table
print (my_table)

               points
team position        
A Forward 29
     Guard 52
B Forward 43
     Guard 49

Sonuçtan şunları görebiliriz:

  • A takımının hücum oyuncuları toplam 29 sayı attı.
  • A takımının guardları toplam 52 sayı attı.
  • B takımının hücum oyuncuları toplam 43 sayı attı.
  • B takımının guardları toplam 49 sayı attı.

Daha sonra, her satır için toplam puanların yüzdesini görüntüleyen % puan adı verilen yeni bir sütun eklemek için aşağıdaki sözdizimini kullanabiliriz:

 #add column that displays points as a percentage of total points
my_table[' % points '] = (my_table[' points ']/my_table[' points ']. sum ())* 100

#view updated pivot table
print (my_table)

               points % points
team position                   
A Forward 29 16.763006
     Guard 52 30.057803
B Forward 43 24.855491
     Guard 49 28.323699

Yeni % Puan sütunu artık puan değerlerini toplam puanların yüzdesi olarak gösteriyor.

Ayrıca yüzde değerlerini belirli sayıda ondalık basamağa yuvarlamak için round() işlevini kullanabileceğinizi unutmayın.

 #add column that displays points as a percentage of total points (rounded)
my_table[' % points '] = round ((my_table[' points ']/my_table[' points ']. sum ())* 100 , 2 )

#view updated pivot table
print (my_table)

               points % points
team position                  
A Forward 29 16.76
     Guard 52 30.06
B Forward 43 24.86
     Guard 49 28.32

Yüzde değerleri artık iki ondalık basamağa yuvarlanıyor.

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

Ek kaynaklar

Aşağıdaki eğitimlerde pandalarda diğer yaygın işlemlerin nasıl gerçekleştirileceği açıklanmaktadır:

Pandalar: Pivot tabloya filtre nasıl eklenir?
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?

Yorum ekle

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