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?