Bu yazıda, panda'nın python'unda işleve göre bir grubun temel kullanımlarını inceleyeceğiz. Tüm komutlar Pycharm editöründe yürütülür.
Grubun ana konseptini çalışanın verilerinin yardımıyla tartışalım. Bazı yararlı çalışan ayrıntıları içeren bir veri çerçevesi oluşturduk (Employee_Names, Designation, Employee_city, Age).
İşleve Göre Gruplama Kullanarak Dizi Birleştirme
groupby işlevini kullanarak dizeleri birleştirebilirsiniz. Aynı kayıtlar tek bir hücrede ',' ile birleştirilebilir.
Misal
Aşağıdaki örnekte, çalışanları 'Atanma' sütununa göre verileri sıraladık ve aynı atamaya sahip Çalışanlar'a katıldık. Lambda işlevi 'Çalışan_Adı' üzerinde uygulanır.
pandaları pd olarak içe aktardf = pd.Veri çerçevesi(
'Çalışan_Adları':['Sam', 'Ali', 'Ömer', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
'Atanma':['Yönetici', 'Personel', 'BT görevlisi', 'BT görevlisi', 'İK', 'Personel', 'İK', 'Personel', 'Ekip Lideri'],
'Çalışan_şehir':['Karaçi', 'Karaçi', 'İslamabad', 'İslamabad', 'Quetta', 'Lahor', 'Faislabad', 'Lahor', 'İslamabad'],
'Çalışan Yaşı':[60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df1=df.groupby("Tanıma")['Çalışan_Adları'].uygula(lambda Çalışan_Adları: ','.katıl(Çalışan_Adları))
yazdır(df1)
Yukarıdaki kod çalıştırıldığında aşağıdaki çıktı görüntülenir:
Değerleri artan düzende sıralama
' öğesini çağırarak groupby nesnesini normal bir veri çerçevesinde kullanın.to_frame()' ve ardından yeniden indeksleme için reset_index() kullanın. sort_values() öğesini çağırarak sütun değerlerini sıralayın.
Misal
Bu örnekte, Çalışanın yaşını artan düzende sıralayacağız. Aşağıdaki kod parçasını kullanarak, 'Çalışan_Adı' ile artan sırada 'Çalışan_Yaşını' aldık.
pandaları pd olarak içe aktardf = pd.Veri çerçevesi(
'Çalışan_Adları':['Sam', 'Ali' , 'Ömer', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
'Atanma':['Yönetici', 'Personel', 'BT görevlisi', 'BT görevlisi', 'İK', 'Personel', 'İK', 'Personel', 'Ekip Lideri'],
'Çalışan_şehir':['Karaçi', 'Karaçi', 'İslamabad', 'İslamabad', 'Quetta', 'Lahor', 'Faislabad', 'Lahor', 'İslamabad'],
'Çalışan Yaşı':[60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df1=df.groupby('Çalışan_Adları')['Çalışan_Yaşı'].toplam().to_frame().reset_index().sort_values(by='Employee_Age')
yazdır(df1)
groupby ile agrega kullanımı
Sayım(), toplam(), ortalama(), medyan(), mode(), std(), min(), max() gibi veri gruplarına uygulayabileceğiniz bir dizi işlev veya toplama vardır.
Misal
Bu örnekte, aynı 'Çalışan_şehir'e ait Çalışanları saymak için groupby ile bir 'count()' işlevi kullandık.
pandaları pd olarak içe aktardf = pd.Veri çerçevesi(
'Çalışan_Adları':['Sam', 'Ali' , 'Ömer', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
'Atanma':['Yönetici', 'Personel', 'BT görevlisi', 'BT görevlisi', 'İK', 'Personel', 'İK', 'Personel', 'Ekip Lideri'],
'Çalışan_şehir':['Karaçi', 'Karaçi', 'İslamabad', 'İslamabad', 'Quetta', 'Lahor', 'Faislabad', 'Lahor', 'İslamabad'],
'Çalışan Yaşı':[60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df1=df.groupby('Çalışan_şehir').Miktar()
yazdır(df1)
Aşağıdaki çıktıyı görebileceğiniz gibi, Atama, Çalışan_Adları ve Çalışan_Yaş sütunları altında, aynı şehre ait sayıları sayın:
Groupby kullanarak verileri görselleştirin
'matplotlib'i içe aktar'ı kullanarak.pyplot' ile verilerinizi grafikler halinde görselleştirebilirsiniz.
Misal
Burada, aşağıdaki örnek, groupby deyimini kullanarak verilen DataFrame'den 'Employee_Nmaes' ile 'Employee_Age' öğesini görselleştirir.
pandaları pd olarak içe aktarmatplotlib'i içe aktar.plt olarak pyplot
veri çerçevesi = pd.Veri çerçevesi(
'Çalışan_Adları':['Sam', 'Ali' , 'Ömer', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
'Atanma':['Yönetici', 'Personel', 'BT görevlisi', 'BT görevlisi', 'İK', 'Personel', 'İK', 'Personel', 'Ekip Lideri'],
'Çalışan_şehir':['Karaçi', 'Karaçi', 'İslamabad', 'İslamabad', 'Quetta', 'Lahor', 'Faislabad', 'Lahor', 'İslamabad'],
'Çalışan Yaşı':[60, 23, 25, 32, 43, 26, 30, 23, 35]
)
plt.clf()
veri çerçevesi.groupby('Çalışan_Adları').toplam().arsa(tür='bar')
plt.göstermek()
Misal
Groupby kullanarak yığın grafiği çizmek için, 'stacked=true' değerini çevirin ve aşağıdaki kodu kullanın:
pandaları pd olarak içe aktarmatplotlib'i içe aktar.plt olarak pyplot
df = pd.Veri çerçevesi(
'Çalışan_Adları':['Sam', 'Ali' , 'Ömer', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
'Atanma':['Yönetici', 'Personel', 'BT görevlisi', 'BT görevlisi', 'İK', 'Personel', 'İK', 'Personel', 'Ekip Lideri'],
'Çalışan_şehir':['Karaçi', 'Karaçi', 'İslamabad', 'İslamabad', 'Quetta', 'Lahor', 'Faislabad', 'Lahor', 'İslamabad'],
'Çalışan Yaşı':[60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df.groupby(['Çalışan_şehir','Çalışan_Adları']).boyut().yığını kaldır().arsa(tür='bar',yığılmış=Doğru, fontsize='6')
plt.göstermek()
Aşağıdaki grafikte aynı ilde yığılmış çalışan sayısı.
Grupla Sütun Adını şu şekilde değiştirin:
Ayrıca, toplu sütun adını bazı yeni değiştirilmiş adlarla aşağıdaki gibi değiştirebilirsiniz:
pandaları pd olarak içe aktarmatplotlib'i içe aktar.plt olarak pyplot
df = pd.Veri çerçevesi(
'Çalışan_Adları':['Sam', 'Ali' , 'Ömer', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
'Atanma':['Yönetici', 'Personel', 'BT görevlisi', 'BT görevlisi', 'İK', 'Personel', 'İK', 'Personel', 'Ekip Lideri'],
'Çalışan_şehir':['Karaçi', 'Karaçi', 'İslamabad', 'İslamabad', 'Quetta', 'Lahor', 'Faislabad', 'Lahor', 'İslamabad'],
'Çalışan Yaşı':[60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df1 = df.groupby('Çalışan_Adları')['Tanıma'].toplam().reset_index(name='Çalışan_Tasarım')
yazdır(df1)
Yukarıdaki örnekte, 'Tanıma' adı 'Çalışan_Tasarım' olarak değiştirilmiştir.
Grubu anahtara veya değere göre al
groupby ifadesini kullanarak, veri çerçevesinden benzer kayıtları veya değerleri alabilirsiniz.
Misal
Aşağıda verilen örnekte, 'Tanıma'ya dayalı grup verilerimiz var. Ardından, 'Personel' grubu, .getgroup('Personel').
pandaları pd olarak içe aktarmatplotlib'i içe aktar.plt olarak pyplot
df = pd.Veri çerçevesi(
'Çalışan_Adları':['Sam', 'Ali' , 'Ömer', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
'Atanma':['Yönetici', 'Personel', 'BT görevlisi', 'BT görevlisi', 'İK', 'Personel', 'İK', 'Personel', 'Ekip Lideri'],
'Çalışan_şehir':['Karaçi', 'Karaçi', 'İslamabad', 'İslamabad', 'Quetta', 'Lahor', 'Faislabad', 'Lahor', 'İslamabad'],
'Çalışan Yaşı':[60, 23, 25, 32, 43, 26, 30, 23, 35]
)
özüt_değer = df.groupby('Tanımlama')
print(çıkartma_değeri.get_group('Personel'))
Çıktı penceresinde aşağıdaki sonuç görüntülenir:
Grup Listesine Değer Ekle
Groupby ifadesi kullanılarak benzer veriler bir liste şeklinde görüntülenebilir. İlk olarak, verileri bir koşula göre gruplayın. Ardından işlevi uygulayarak bu grubu kolayca listelere koyabilirsiniz.
Misal
Bu örnekte, grup listesine benzer kayıtları ekledik. Tüm çalışanlar 'Employee_city' bazında gruba ayrılır ve ardından 'Lambda' fonksiyonu uygulanarak bu grup liste şeklinde alınır.
pandaları pd olarak içe aktardf = pd.Veri çerçevesi(
'Çalışan_Adları':['Sam', 'Ali' , 'Ömer', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
'Atanma':['Yönetici', 'Personel', 'BT görevlisi', 'BT görevlisi', 'İK', 'Personel', 'İK', 'Personel', 'Ekip Lideri'],
'Çalışan_şehir':['Karaçi', 'Karaçi', 'İslamabad', 'İslamabad', 'Quetta', 'Lahor', 'Faislabad', 'Lahor', 'İslamabad'],
'Çalışan Yaşı':[60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df1=df.groupby('Çalışan_şehir')['Çalışan_Adları'].uygula(lambda group_series: group_series.Listeye()).reset_index()
yazdır(df1)
Groupby ile Dönüştür işlevinin kullanımı
Çalışanlar yaşlarına göre gruplandırılır, bu değerler toplanır ve 'dönüştür' fonksiyonu kullanılarak tabloya yeni sütun eklenir:
pandaları pd olarak içe aktardf = pd.Veri çerçevesi(
'Çalışan_Adları':['Sam', 'Ali' , 'Ömer', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
'Atanma':['Yönetici', 'Personel', 'BT görevlisi', 'BT görevlisi', 'İK', 'Personel', 'İK', 'Personel', 'Ekip Lideri'],
'Çalışan_şehir':['Karaçi', 'Karaçi', 'İslamabad', 'İslamabad', 'Quetta', 'Lahor', 'Faislabad', 'Lahor', 'İslamabad'],
'Çalışan Yaşı':[60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df['toplam']=df.groupby(['Çalışan_Adları'])['Çalışan_Yaşı'].dönüştürmek('toplam')
yazdır(df)
Sonuç
Bu makalede groupby ifadesinin farklı kullanımlarını araştırdık. Verileri nasıl gruplara ayırabileceğinizi ve farklı toplamalar veya işlevler uygulayarak bu grupları kolayca alabileceğinizi gösterdik.