Pandalar Grupça Toplama

Pandalar Grupca Toplama



Groupby tekniği, verileri hem performans hem de kod boyutu açısından ne kadar iyi bir araya getirdiğinden dolayı önemlidir. 'Grup oluşturma' terimi tipik olarak aşağıdaki adımları içeren bir prosedürü tanımlar:

  • bölme : Veri kümelerine belirli koşullar uygulayarak verileri gruplara ayırabiliriz.
  • başvuru : Her gruba bireysel olarak bir yöntem uyguladığımız bir süreç.
  • birleştirme : groupby() yöntemini kullandıktan sonra bir veri yapısı oluşturmak için çeşitli veri kümelerini birleştirme prosedürü.

Toplama sürecinde, her grup için bir özet istatistik hesaplanır. Her grup için toplama yöntemi, toplu bir değer (tek değer) döndürür. Groupby işlevini kullanarak verileri gruplara ayırdıktan sonra gruplanmış veriler üzerinde birkaç toplama işlemi gerçekleştirebiliriz.







Pandalar Neden Çeşitli Veri Toplama Yöntemleri Sağlar?

Pandalar, verilerin analizine ve toplanmasına yardımcı olmak için çok çeşitli özellikler ve işlevler sunar. Örneğin pivot(), groupby() ve pivot_table() yöntemlerinin kullanımı, verilerin nasıl toplanacağı konusunda farklı bir bakış açısı sunar. Basitçe yeniden paketlenmek yerine çeşitli görevleri yerine getirmek için pratik yaklaşımlar sağlarlar.



Pandalarda .agg() İşlevi Nasıl Kullanılır

Basit bir ortalama veya değerler toplamı, en sık kullanılan toplama işlevidir. Bir toplama işlevini çağırmak için bir veri çerçevesinin sütununu veya birden çok sütununu kullanabilirsiniz. Pandas groupby yöntemini kullanarak verileri toplamanın birçok yolunu göreceksiniz. Prosedürün ne kadar kolay olduğunu göstermek için aşağıda verilen bazı örneklere bakalım. Toplam, minimum, maksimum, ortalama mutlak sapma, standart sapma, ortalama, medyan, varyans ve çarpım gibi temel matematik işlemleri, en sık kullanılan yerleşik toplama işlevleri arasındadır. Verileri özetlemek için groupby ve agg() işlevini birleştirebiliriz.



Örnek # 01: Groupby.agg() İşlevini Kullanarak Verileri Gruplandırarak Sütun Toplamını Belirleyin

İlk önce pd.DataFrame() fonksiyonunu kullanarak bir dataframe oluşturacağız, böylece dataframe'in sütun veya sütunlarından gelen verileri gruplandıracağız ve ardından ortalama değerlerini belirleyeceğiz. Veri çerçevesini oluşturmadan önce panda modüllerini ve numpy kitaplığını içe aktarmalıyız.





Gördüğünüz gibi veri çerçevemizi oluşturmak için pandalar sözlüğünü kullandık. Df veri çerçevemizin dört sütunu vardır: 'hasta' 'grup', 'yaş' ve 'kan şişeleri'. Veri değerleri ('Ali', 'John', 'Mike', 'Mike', 'John', 'Ali', 'Ali', 'Mike') “hasta” sütununda yer alırken, veri değerleri ('A' ', 'A', 'B', 'C', 'A', 'C', 'C', 'B'), (21, 22, 24, 21, 20, 24, 22, 22) ve ( 2, 3, 1, 1, 2, 3, 2, 1) sırasıyla 'grup', 'yaş' ve 'kan_şişeleri' sütunlarında bulunur. 'Grup' sütunundaki değerleri gruplayarak 'kan_şişeleri' sütunundaki değerlerin toplamını belirlememiz gerektiğini varsayalım.



'A' grup verileri için 'blood_bottles' değerlerinin toplamı 7'dir. 'B' ve 'C' grup değerleri için, 'blood_bottles' değerlerinin toplamı sırasıyla 2 ve 6'dır. Her grubun toplamını belirlemek için birden çok sütunu da gruplayabiliriz.

Görülebileceği gibi, her bir belirtilen sütunda kategori grupları oluşturmak için groupby() fonksiyonunun içinde bir sütun etiketleri listesi, yani ['hasta', 'grup'] geçtik. Belirtilen sütunların her grubu için, 'blood_bottles' içindeki değerlerin toplamını belirledik. Örneğin, 'Ali', A ve C 'grup' sütun değerlerindedir. A grubunda, Ali için 'kan_şişeleri' değerlerinin toplamı 2 ve 'C' grubunda 5'tir.

Örnek # 02: groupby.agg() İşlevini Kullanarak Tek Bir Veri Çerçevesi Sütununa Birden Çok İşlev Uygulama

pandas işlevi agg() kullanılarak 'groupby()' yöntemiyle birden çok toplama uygulanabilir. Yönteme çağrılabilir bir liste iletilebilir. Numpy kitaplığının yerleşik yöntemlerini kullanarak verilerimizi nasıl toplayabileceğimize bakalım. Önceki örnekten farklı olarak, veri çerçevesinin tek bir sütununa birden çok işlev uygulayacağız. pd.DataFrame() işlevi, bunun için sayısal değerler içeren en az bir sütun içeren bir veri çerçevesi oluşturmak için kullanılacaktır.


Gerekli veri çerçevesi, 41, 40, 35, 39, 49, 31, 34 ve 42 değerlerine sahip 'işaretler' gibi bir sayısal sütuna sahip olarak oluşturulmuştur. 3 sütun daha 'öğrenci', 'dersler' ve 'derece' vardır. groupby() işlevi kullanılarak gruplara ayrılabilen veri çerçevemizde. 'öğrenciler' ve 'denekler' sütunundaki değerler ('Harry', 'Ron', 'Harry', 'Lana', 'Sam', 'Ron', 'Lana', 'Max') ve ('C++' , 'JAVA', 'Python', 'Python', 'AI', 'JAVA', 'C++', 'AI'). Sütun derecesi ise veri değerlerini dizeler olarak içerir, yani ('Ms', 'Bs', 'Bs', 'Ms', 'Ms', 'Ms', 'Bs', 'Bs'). 'Konu' sütununun verilerini gruplandırmamız ve gruplandırılmış her veri için sütun 'işaretlerinin' hem ortalamasını hem de toplamını belirlememiz gerektiğini varsayalım.

Verileri kategori gruplarına dönüştürmek için groupby() fonksiyonunun içinde 'subjects' sütununun adını bir dizge olarak belirledik. İşaretler sütunu için agg() yöntemini kullandık ve agg() işlevinin içinde sütun konularındaki her grup verisinin işaretlerinin toplamını ve ortalamasını bulmak için np.sum ve np.mean numpy işlevlerini belirledik. 'AI' grup değeri için toplam ve ortalama değer sırasıyla 91 ve 45.5'tir. 'C++' değeri için puanların toplamı 75'tir ve ortalama değer 37.5'tir. JAVA grubu için, puanların toplamı 71'dir ve ortalama değer 35.5'tir, oysa Python için toplam ve ortalama değer sırasıyla 74 ve 37'dir.

Örnek # 03: Groupby.agg() İşlevini Kullanarak Veri Çerçevesinin Çoklu Sütunlarına Birden Çok İşlev Uygulama

Tek bir veri çerçevesinin sütununa farklı işlevler uygulamak yerine, farklı sayısal sütunlara birden çok işlev uygulayabiliriz. Farklı veri çerçevesinin sütunlarına belirli bir toplama yöntemini uygulamak için girdi olarak agg() işlevinde bir sözlük kullanabiliriz. Birden çok sayısal sütun içeren bir veri çerçevesi oluşturmadan önce pandaları ve numpy kitaplıklarını içe aktaralım.

Yeni oluşturulan veri çerçevesinde 'player', 'least_score', 'highest_score' ve 'location' adlarıyla dört sütun vardır. 'Oyuncu' sütununda, birkaç oyuncunun isimlerini dizi veri değerleri olarak sakladık ('Leo', 'Alex', 'Leo', 'Fin', 'Leo', 'Alex', 'Fin', ' Fin'), 'least_score' sütununda bazı maçlar için en düşük oyuncular (12, 34, 2, 21, 9, 1, 0, 34), 'highest_score' sütununda ise en yüksek oyuncular var (12, 34, 2, 21, 9, 1, 0, 34) ve 'yer' sütununda oyuncuların maçlarını oynadıkları mekanların isimleri ('Fransa', 'İngiltere', 'Dubai', ' Dubai', 'İngiltere', 'Fransa', 'Dubai', 'Fransa').

Verileri 'oyuncular' sütununda gruplandırdıktan sonra, her grup için 'least_score' sütun değerlerinin ortalamasını ve 'hightest_score' veri değerlerinin toplamını bulmamız gerektiğini varsayalım.

agg() işlevinin içinde, her gruba karşı belirli bir sütunun toplamını ve ortalama değerini bulmak için bir python sözlüğü {'highest_score' : 'sum', 'least_score' : 'mean'} ilettik. Gruplandırılmış Alex değerinin, 'en yüksek_skor' değeri 132 ile 'en az_skor' değeri 17.5'in ortalamasının toplamına sahip olduğu görülebilir. 'Fin' için değerlerin toplamı 199'dur ve ortalama 'highest_score' ve 'least_score' sütunlarında sırasıyla 18.3333333'tür. Leo grup değeri, 'en yüksek_skor'da 180 toplam değerine ve 'en az_skor'da ortalama 7.666667 değerine sahiptir.

Çözüm

Bu eğitimde, pandalarda groupby() ve toplama işlevlerini tartıştık. Ayrıca groupby.agg() fonksiyonunun nasıl kullanılacağını tartıştık. Bu makalede, tek ve birden çok sütunun verilerini gruplayarak bir veri çerçevesi sütununda tek bir toplama işlevinin nasıl kullanılacağını, bir veri çerçevesinin tek bir sütununda birden çok toplama işlevinin nasıl uygulanacağını ve birden çok nasıl uygulanacağını öğretmek için bu makalede üç örnek uyguladık. groupby.agg() işlevini kullanarak veri çerçevesinin birden çok sütununda toplama işlevleri.