pandy

Jak používat Group by v Pandas Python

Jak používat Group by v Pandas Python
Pandy seskupené podle funkce se používají ke seskupování objektů nebo sloupců DataFrames na základě konkrétních podmínek nebo pravidel. Pomocí funkce groupby je správa datové sady jednodušší. Všechny související záznamy však lze uspořádat do skupin. Pomocí knihovny Pandas můžete implementovat skupinu Pandas podle funkce a seskupit data podle různých druhů proměnných. Většina vývojářů použila tři základní techniky pro skupinu podle funkcí. Nejprve rozdělení, ve kterém se data dělí do skupin na základě určitých konkrétních podmínek. Poté na tyto skupiny použijte určité funkce. Nakonec výstup zkombinujte ve formě datové struktury.

V tomto článku projdeme základní použití skupiny podle funkce v pythonu pandy. Všechny příkazy jsou prováděny v editoru Pycharm.

Pojďme diskutovat o hlavní koncepci skupiny pomocí údajů o zaměstnancích. Vytvořili jsme datový rámec s některými užitečnými podrobnostmi o zaměstnanci (Employee_Names, Designation, Employee_city, Age).

Zřetězení řetězců pomocí seskupení podle funkcí

Pomocí funkce groupby můžete zřetězit řetězce. Stejné záznamy lze spojit s „,“ v jedné buňce.

Příklad

V následujícím příkladu jsme setřídili data na základě sloupce Označení zaměstnanců a připojili se k zaměstnancům, kteří mají stejné označení. Funkce lambda je použita na 'zaměstnanci_Name'.

importovat pandy jako pd
df = pd.DataFrame (
'Employee_Names': ['Sam', 'Ali', 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
„Označení“: [„Manažer“, „Zaměstnanci“, „Pracovník IT“, „Pracovník IT“, „HR“, „Zaměstnanci“, „HR“, „Zaměstnanci“, „Vedoucí týmu“],
'Employee_city': ['Karachi', 'Karachi', 'Islamabad', 'Islamabad', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabad'],
„Employee_Age“: [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df1 = df.groupby ("Označení") ['Jména zaměstnanců'].použít (lambda Employee_Names: ','.připojit se (jména zaměstnanců)
tisk (df1)

Po provedení výše uvedeného kódu se zobrazí následující výstup:

Třídění hodnot ve vzestupném pořadí

Použijte objekt groupby do běžného datového rámce voláním '.to_frame () 'a poté použijte reset_index () pro reindexaci. Seřadit hodnoty sloupců voláním sort_values ​​().

Příklad

V tomto příkladu seřadíme věk zaměstnance vzestupně. Pomocí následující části kódu jsme načetli 'Employee_Age' ve vzestupném pořadí s 'Employee_Names'.

importovat pandy jako pd
df = pd.DataFrame (
'Employee_Names': ['Sam', 'Ali', 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
„Označení“: [„Manažer“, „Zaměstnanci“, „Pracovník IT“, „Pracovník IT“, „HR“, „Zaměstnanci“, „HR“, „Zaměstnanci“, „Vedoucí týmu]],
'Employee_city': ['Karachi', 'Karachi', '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'].součet().zarámovat().reset_index ().sort_values ​​(by = 'Employee_Age')
tisk (df1)

Použití agregátů s groupby

K dispozici je řada funkcí nebo agregací, které můžete použít na datové skupiny, například count (), sum (), mean (), median (), mode (), std (), min (), max ().

Příklad

V tomto příkladu jsme použili funkci 'count ()' s groupby k počítání zaměstnanců, kteří patří do stejného 'Employee_city'.

importovat pandy jako pd
df = pd.DataFrame (
'Employee_Names': ['Sam', 'Ali', 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
„Označení“: [„Manažer“, „Zaměstnanci“, „Pracovník IT“, „Pracovník IT“, „HR“, „Zaměstnanci“, „HR“, „Zaměstnanci“, „Vedoucí týmu]],
'Employee_city': ['Karachi', 'Karachi', 'Islamabad', 'Islamabad', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabad'],
„Employee_Age“: [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df1 = df.groupby ('Employee_city').počet()
tisk (df1)

Jak vidíte následující výstup, ve sloupcích Designation, Employee_Names a Employee_Age počítejte čísla, která patří do stejného města:

Vizualizujte data pomocí groupby

Pomocí 'import matplotlib.pyplot ', můžete svá data vizualizovat do grafů.

Příklad

Zde následující příklad vizualizuje 'Employee_Age' s 'Employee_Nmaes' z daného DataFrame pomocí příkazu groupby.

importovat pandy jako pd
import matplotlib.pyplot jako plt
dataframe = pd.DataFrame (
'Employee_Names': ['Sam', 'Ali', 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
„Označení“: [„Manažer“, „Zaměstnanci“, „Pracovník IT“, „Pracovník IT“, „HR“, „Zaměstnanci“, „HR“, „Zaměstnanci“, „Vedoucí týmu“],
'Employee_city': ['Karachi', 'Karachi', 'Islamabad', 'Islamabad', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabad'],
„Employee_Age“: [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
plt.clf ()
datový rámec.groupby ('Employee_Names').součet().plot (druh = 'bar')
plt.ukázat()

Příklad

Chcete-li vykreslit skládaný graf pomocí groupby, otočte 'stacked = true' a použijte následující kód:

importovat pandy jako pd
import matplotlib.pyplot jako plt
df = pd.DataFrame (
'Employee_Names': ['Sam', 'Ali', 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
„Označení“: [„Manažer“, „Zaměstnanci“, „Pracovník IT“, „Pracovník IT“, „HR“, „Zaměstnanci“, „HR“, „Zaměstnanci“, „Vedoucí týmu“],
'Employee_city': ['Karachi', 'Karachi', 'Islamabad', 'Islamabad', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabad'],
„Employee_Age“: [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df.groupby ([['Employee_city', 'Employee_Names'])).velikost().rozbalit ().plot (kind = 'bar', stacked = True, fontsize = '6')
plt.ukázat()

V níže uvedeném grafu je počet naskládaných zaměstnanců, kteří patří do stejného města.

Změňte název sloupce se skupinou podle

Název agregovaného sloupce s novým upraveným názvem můžete také změnit následujícím způsobem:

importovat pandy jako pd
import matplotlib.pyplot jako plt
df = pd.DataFrame (
'Employee_Names': ['Sam', 'Ali', 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
„Označení“: [„Manažer“, „Zaměstnanci“, „Pracovník IT“, „Pracovník IT“, „HR“, „Zaměstnanci“, „HR“, „Zaměstnanci“, „Vedoucí týmu]],
'Employee_city': ['Karachi', 'Karachi', 'Islamabad', 'Islamabad', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabad'],
„Employee_Age“: [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df1 = df.groupby ('Employee_Names') ['Označení'].součet().reset_index (name = 'Employee_Designation')
tisk (df1)

Ve výše uvedeném příkladu se název „označení“ změní na „Employee_Designation“.

Načíst skupinu podle klíče nebo hodnoty

Pomocí příkazu groupby můžete načíst podobné záznamy nebo hodnoty z datového rámce.

Příklad

V níže uvedeném příkladu máme skupinová data založená na „označení“. Poté se skupina „Zaměstnanci“ načte pomocí .getgroup ('Zaměstnanci').

importovat pandy jako pd
import matplotlib.pyplot jako plt
df = pd.DataFrame (
'Employee_Names': ['Sam', 'Ali', 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
„Označení“: [„Manažer“, „Zaměstnanci“, „Pracovník IT“, „Pracovník IT“, „HR“, „Zaměstnanci“, „HR“, „Zaměstnanci“, „Vedoucí týmu]],
'Employee_city': ['Karachi', 'Karachi', 'Islamabad', 'Islamabad', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabad'],
„Employee_Age“: [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
extract_value = df.groupby ('Označení')
print (extrahovat_hodnotu.get_group ('Zaměstnanci'))

V okně výstupu se zobrazí následující výsledek:

Přidat hodnotu do seznamu skupin

Podobná data lze zobrazit ve formě seznamu pomocí příkazu groupby. Nejprve seskupte data na základě podmínky. Poté pomocí funkce můžete tuto skupinu snadno zařadit do seznamů.

Příklad

V tomto příkladu jsme do seznamu skupin vložili podobné záznamy. Všichni zaměstnanci jsou rozděleni do skupiny na základě „Employee_city“ a poté pomocí funkce „Lambda“ je tato skupina načtena ve formě seznamu.

importovat pandy jako pd
df = pd.DataFrame (
'Employee_Names': ['Sam', 'Ali', 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
„Označení“: [„Manažer“, „Zaměstnanci“, „Pracovník IT“, „Pracovník IT“, „HR“, „Zaměstnanci“, „HR“, „Zaměstnanci“, „Vedoucí týmu“],
'Employee_city': ['Karachi', 'Karachi', 'Islamabad', 'Islamabad', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabad'],
„Employee_Age“: [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df1 = df.groupby ('Employee_city') ['Employee_Names'].použít (lambda group_series: group_series.seznam ()).reset_index ()
tisk (df1)

Použití funkce Transformace s groupby

Zaměstnanci jsou seskupeni podle věku, tyto hodnoty se sčítají a pomocí funkce „transformace“ se do tabulky přidá nový sloupec:

importovat pandy jako pd
df = pd.DataFrame (
'Employee_Names': ['Sam', 'Ali', 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
„Označení“: [„Manažer“, „Zaměstnanci“, „Pracovník IT“, „Pracovník IT“, „HR“, „Zaměstnanci“, „HR“, „Zaměstnanci“, „Vedoucí týmu]],
'Employee_city': ['Karachi', 'Karachi', 'Islamabad', 'Islamabad', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabad'],
„Employee_Age“: [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df ['sum'] = df.groupby (['' Employee_Names ']) [' Employee_Age '].transformace ('součet')
tisk (df)

Závěr

V tomto článku jsme prozkoumali různá použití příkazu groupby. Ukázali jsme, jak můžete data rozdělit do skupin, a použitím různých agregací nebo funkcí můžete tyto skupiny snadno načíst.

Jak změnit levé a pravé tlačítko myši na počítači se systémem Windows 10
Je úplnou normou, že všechna zařízení počítačových myší jsou ergonomicky navržena pro praváky. K dispozici jsou však myší zařízení, která jsou speciál...
Emulace kliknutí myší vznášením pomocí myši Clickless Mouse ve Windows 10
Používání myši nebo klávesnice ve špatném držení těla nadměrného používání může mít za následek mnoho zdravotních problémů, včetně napětí, syndromu ka...
Přidejte gesta myši do Windows 10 pomocí těchto bezplatných nástrojů
V posledních letech se počítače a operační systémy značně vyvinuly. Bývaly doby, kdy uživatelé museli procházet správci souborů pomocí příkazů. Stejně...