Pandalar: pivot tabloya alt toplamlar nasıl eklenir?
Çoğu zaman pandaların pivot tablosuna alt toplamlar eklemek isteyebilirsiniz.
Neyse ki pandaların yerleşik işlevlerini kullanarak bunu yapmak kolaydır.
Aşağıdaki örnek bunun nasıl yapılacağını gösterir.
Örnek: Pandas PivotTable’a Alt Toplamlar Ekleme
Ç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'], ' position ': ['G', 'G', 'F', 'F', 'G', 'F', 'F', 'F'], ' all_star ': ['Y', 'N', 'Y', 'Y', 'N', 'N', 'N', 'Y'], ' points ': [4, 4, 6, 8, 9, 5, 5, 12]}) #view DataFrame print (df) team position all_star points 0 AGY 4 1 AGN 4 2 AFY 6 3 AFY 8 4 BGN 9 5 BFN 5 6 BFN 5 7 BFY 12
DataFrame’deki her bir takım , all_star ve konum kombinasyonu için puanların toplamını görüntüleyen pandalarda bir pivot tablo oluşturmak için aşağıdaki kodu kullanabiliriz:
#create pivot table
my_table = pd. pivot_table (df, values=' points ',
index=[' team ', ' all_star '],
columns=' position ',
aggfunc=' sum ')
#view pivot table
print (my_table)
FG position
team all_star
AN NaN 4.0
Y 14.0 4.0
BN 10.0 9.0
Y 12.0 NaN
Şimdi her takım ve pozisyon için alt toplam puanlarını görüntüleyen bir alt toplamlar satırı eklemek istediğimizi varsayalım.
Bunu yapmak için aşağıdaki sözdizimini kullanabiliriz:
#add subtotals row to pivot table
p.d. concat ([
y. append ( y.sum (). rename ((x, ' Total ')))
for x, y in my_table. groupby (level= 0 )
]). append ( my_table.sum (). rename ((' Large ', ' Total ')))
position F G
team all_star
A N NaN 4.0
Y 7.0 4.0
Overall 7.0 8.0
B N 5.0 9.0
Y 12.0 NaN
Total 17.0 9.0
Grand Total 24.0 17.0
Artık her takım ve pozisyon için alt toplam puanlarını gösteren iki ara toplam satırımız ve ayrıca her sütun için genel toplamı gösteren bir genel toplam satırımız var.
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: Sayıda değer içeren bir pivot tablo nasıl oluşturulur?
Pandalar: Pivot tablodaki NaN değerleri sıfırlarla nasıl değiştirilir?
Pandalar: PivotTable’ı DataFrame’e dönüştürme