Jak używać grupy przez pandas Python

Jak używać grupy przez pandas Python
Grupa PandaS według funkcji służy do grupowania obiektów lub kolumn danych opartych na określonych warunkach lub regułach. Korzystając z funkcji grupy, zarządzanie zestawem danych jest łatwiejsze. Jednak wszystkie powiązane zapisy można ułożyć w grupy. Korzystając z biblioteki PandaS, możesz zaimplementować grupę pandy według funkcji, aby zgrupować dane zgodnie z różnymi rodzajami zmiennych. Większość programistów stosowała trzy podstawowe techniki dla grupy według funkcji. Po pierwsze, podział danych dzielą się na grupy na podstawie niektórych konkretnych warunków. Następnie zastosuj niektóre funkcje do tych grup. W końcu połącz wyjście w postaci struktury danych.

W tym artykule przejdziemy przez podstawowe zastosowania grupy według funkcji w Pythonie Panda. Wszystkie polecenia są wykonywane na edytorze Pycharm.

Omówmy główną koncepcję grupy z pomocą danych pracownika. Utworzyliśmy ramkę danych z użytecznymi szczegółami pracownika (nazwy_potelkowe, oznaczenie, pracownika_semat, wiek).

Containation Contagenation za pomocą grupy według funkcji

Korzystając z funkcji grupy, możesz połączyć struny. Te same rekordy można połączyć z „” w jednej komórce.

Przykład

W poniższym przykładzie sortowaliśmy dane na podstawie kolumny „oznaczenia” pracowników i dołączyliśmy do pracowników, którzy mają takie same oznaczenie. Funkcja Lambda jest stosowana w „Nazwa_potersji”.

importować pandy jako PD
df = pd.Ramka danych(
„Employee_names”: [„Sam”, „Ali”, „Umar”, „Raees”, „Mahwish”, „Hania”, „Mirha”, „Maria”, „Hamza”],
„Oznaczenie”: [„Manager”, „Staff”, „It Officer”, „It Officer”, „HR”, „Staff”, „Hr”, „Staff”, „prowadzący zespół”],
„Employee_city”: [„Karaczi”, „Karaczi”, „Islamabad”, „Islamabad”, „Quetta”, „Lahore”, „Faislabad”, „Lahore”, „Islamabad”],
„Employee_age”: [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df1 = df.GroupBy („Oznaczenie”) [„Employee_names”].Zastosuj (Lambda Employee_names: ','.dołącz (pracownika_names)))
Drukuj (DF1)

Po wykonaniu powyższego kodu wyświetla się następujące dane wyjściowe:

Sortowanie wartości w kolejności rosnącej

Użyj obiektu GroupBy w zwykłą ramkę danych, wywołując '.to_frame () ', a następnie użyj reset_index () do reindexing. Sortowanie wartości kolumny przywołając sort_values ​​().

Przykład

W tym przykładzie sortujemy wiek pracownika w kolejności rosnącej. Korzystając z poniższego kodu, odzyskaliśmy „Employee_age” w kolejności rosnącej za pomocą „Employee_names”.

importować pandy jako PD
df = pd.Ramka danych(
„Employee_names”: [„Sam”, „Ali”, „Umar”, „Raees”, „Mahwish”, „Hania”, „Mirha”, „Maria”, „Hamza”],
„Oznaczenie”: [„Manager”, „Staff”, „It Officer”, „It Officer”, „HR”, „Staff”, „Hr”, „Staff”, „prowadzący zespół”],
„Employee_city”: [„Karaczi”, „Karaczi”, „Islamabad”, „Islamabad”, „Quetta”, „Lahore”, „Faislabad”, „Lahore”, „Islamabad”],
„Employee_age”: [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df1 = df.GroupBy („Employee_names”) [„Employee_age”].suma().to_frame ().RESET_INDEX ().sort_values ​​(według = 'employee_age')
Drukuj (DF1)

Korzystanie z agregatów z grupą

Dostępnych jest wiele funkcji lub agregacji, które można zastosować w grupach danych, takich jak Count (), sum (), Mean (), mediana (), tryb (), std (), min (), max ().

Przykład

W tym przykładzie użyliśmy funkcji „count ()” z Groupby, aby policzyć pracowników należących do tego samego „pracownika”.

importować pandy jako PD
df = pd.Ramka danych(
„Employee_names”: [„Sam”, „Ali”, „Umar”, „Raees”, „Mahwish”, „Hania”, „Mirha”, „Maria”, „Hamza”],
„Oznaczenie”: [„Manager”, „Staff”, „It Officer”, „It Officer”, „HR”, „Staff”, „Hr”, „Staff”, „prowadzący zespół”],
„Employee_city”: [„Karaczi”, „Karaczi”, „Islamabad”, „Islamabad”, „Quetta”, „Lahore”, „Faislabad”, „Lahore”, „Islamabad”],
„Employee_age”: [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df1 = df.GroupBy („Employee_city”).liczyć()
Drukuj (DF1)

Jak widać następujące dane wyjściowe, w ramach określenia, nazwy_potelkowe i kolumny pracowników, liczby liczb należących do tego samego miasta:

Wizualizuj dane za pomocą GroupBy

Używając „importuj matplotlib.Pyplot ”, możesz wizualizować swoje dane na wykresy.

Przykład

Tutaj poniższy przykład wizualizuje „pracowników” z „pracownikiem_nmaes” z danej ramki danych za pomocą instrukcji GroupBy.

importować pandy jako PD
importować matplotlib.Pyplot as Plt
DataFrame = PD.Ramka danych(
„Employee_names”: [„Sam”, „Ali”, „Umar”, „Raees”, „Mahwish”, „Hania”, „Mirha”, „Maria”, „Hamza”],
„Oznaczenie”: [„Manager”, „Staff”, „It Officer”, „It Officer”, „HR”, „Staff”, „Hr”, „Staff”, „prowadzący zespół”],
„Employee_city”: [„Karaczi”, „Karaczi”, „Islamabad”, „Islamabad”, „Quetta”, „Lahore”, „Faislabad”, „Lahore”, „Islamabad”],
„Employee_age”: [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
plt.clf ()
ramka danych.GroupBy („Employee_names”).suma().Wykres (kind = „bar”)
plt.pokazywać()

Przykład

Aby wykreślić ułożony wykres za pomocą GroupBy, obróć „Stacked = True” i użyj następującego kodu:

importować pandy jako PD
importować matplotlib.Pyplot as Plt
df = pd.Ramka danych(
„Employee_names”: [„Sam”, „Ali”, „Umar”, „Raees”, „Mahwish”, „Hania”, „Mirha”, „Maria”, „Hamza”],
„Oznaczenie”: [„Manager”, „Staff”, „It Officer”, „It Officer”, „HR”, „Staff”, „Hr”, „Staff”, „prowadzący zespół”],
„Employee_city”: [„Karaczi”, „Karaczi”, „Islamabad”, „Islamabad”, „Quetta”, „Lahore”, „Faislabad”, „Lahore”, „Islamabad”],
„Employee_age”: [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df.GroupBy ([„employe_city”, „employe_names”]).rozmiar().undack ().wykres (kind = „bar”, stosy = true, fontsize = '6')
plt.pokazywać()

Na poniższym wykresie liczba pracowników, którzy należą do tego samego miasta.

Zmień nazwę kolumny w grupie według

Możesz także zmienić zagregowaną nazwę kolumny z jakąś nową zmodyfikowaną nazwą w następujący sposób:

importować pandy jako PD
importować matplotlib.Pyplot as Plt
df = pd.Ramka danych(
„Employee_names”: [„Sam”, „Ali”, „Umar”, „Raees”, „Mahwish”, „Hania”, „Mirha”, „Maria”, „Hamza”],
„Oznaczenie”: [„Manager”, „Staff”, „It Officer”, „It Officer”, „HR”, „Staff”, „Hr”, „Staff”, „prowadzący zespół”],
„Employee_city”: [„Karaczi”, „Karaczi”, „Islamabad”, „Islamabad”, „Quetta”, „Lahore”, „Faislabad”, „Lahore”, „Islamabad”],
„Employee_age”: [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df1 = df.GroupBy („Employe_names”) [„Oznaczenie”].suma().RESET_INDEX (name = 'Employee_designation')
Drukuj (DF1)

W powyższym przykładzie nazwa „Oznaczenie” jest zmieniana na „Employee_designation”.

Odzyskać grupę według klucza lub wartości

Korzystając z instrukcji GroupBy, możesz pobrać podobne rekordy lub wartości z DataFrame.

Przykład

W poniższym przykładzie mamy dane grupowe oparte na „oznaczeniu”. Następnie grupa „personelu” jest pobierana za pomocą .GetGroup („personel”).

importować pandy jako PD
importować matplotlib.Pyplot as Plt
df = pd.Ramka danych(
„Employee_names”: [„Sam”, „Ali”, „Umar”, „Raees”, „Mahwish”, „Hania”, „Mirha”, „Maria”, „Hamza”],
„Oznaczenie”: [„Manager”, „Staff”, „It Officer”, „It Officer”, „HR”, „Staff”, „Hr”, „Staff”, „prowadzący zespół”],
„Employee_city”: [„Karaczi”, „Karaczi”, „Islamabad”, „Islamabad”, „Quetta”, „Lahore”, „Faislabad”, „Lahore”, „Islamabad”],
„Employee_age”: [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
Extract_Value = df.Groupby („oznaczenie”)
drukuj (extract_value.get_group („personel”))

Poniższe wyniki wyświetla się w oknie wyjściowym:

Dodać wartość do listy grup

Podobne dane mogą być wyświetlane w formie listy za pomocą instrukcji GroupBy. Najpierw zgrupuj dane na podstawie warunku. Następnie, stosując funkcję, możesz łatwo umieścić tę grupę na listach.

Przykład

W tym przykładzie wstawiliśmy podobne rekordy do listy grup. Wszyscy pracownicy są podzieleni na grupę na podstawie „pracowników”, a następnie poprzez zastosowanie funkcji „Lambda”, ta grupa jest pobierana w formie listy.

importować pandy jako PD
df = pd.Ramka danych(
„Employee_names”: [„Sam”, „Ali”, „Umar”, „Raees”, „Mahwish”, „Hania”, „Mirha”, „Maria”, „Hamza”],
„Oznaczenie”: [„Manager”, „Staff”, „It Officer”, „It Officer”, „HR”, „Staff”, „Hr”, „Staff”, „prowadzący zespół”],
„Employee_city”: [„Karaczi”, „Karaczi”, „Islamabad”, „Islamabad”, „Quetta”, „Lahore”, „Faislabad”, „Lahore”, „Islamabad”],
„Employee_age”: [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df1 = df.GroupBy („employe_city”) ['employe_names'].Zastosuj (Lambda Group_Series: Group_series.notować()).RESET_INDEX ()
Drukuj (DF1)

Użycie funkcji transformacji z grupą

Pracownicy są pogrupowani według ich wieku, wartości te dodane razem, a przy użyciu funkcji „transformuj” nową kolumnę jest dodawana w tabeli:

importować pandy jako PD
df = pd.Ramka danych(
„Employee_names”: [„Sam”, „Ali”, „Umar”, „Raees”, „Mahwish”, „Hania”, „Mirha”, „Maria”, „Hamza”],
„Oznaczenie”: [„Manager”, „Staff”, „It Officer”, „It Officer”, „HR”, „Staff”, „Hr”, „Staff”, „prowadzący zespół”],
„Employee_city”: [„Karaczi”, „Karaczi”, „Islamabad”, „Islamabad”, „Quetta”, „Lahore”, „Faislabad”, „Lahore”, „Islamabad”],
„Employee_age”: [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df ['sum'] = df.GroupBy (['employe_names']) ['employee_age'].Transform („sum”)
Drukuj (DF)

Wniosek

W tym artykule zbadaliśmy różne zastosowania instrukcji grupy. Pokazaliśmy, w jaki sposób możesz podzielić dane na grupy i stosując różne agregacje lub funkcje, możesz łatwo odzyskać te grupy.