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

Yorum ekle

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