pandák

Hogyan kell használni a Csoportosítást a Pandas Pythonban

Hogyan kell használni a Csoportosítást a Pandas Pythonban
A funkciók szerinti csoportosítással a pandák a DataFrames objektumok vagy oszlopok csoportosítására szolgálnak bizonyos feltételek vagy szabályok alapján. A groupby funkció használatával az adatkészlet kezelése egyszerűbb. Az összes kapcsolódó irat azonban csoportokba rendezhető. A Pandas könyvtár használatával megvalósíthatja a Pandas csoport függvény szerint az adatok különféle változók szerinti csoportosítását. A legtöbb fejlesztő három alapvető technikát alkalmazott a funkció szerinti csoportosításhoz. Először az adatok felosztása, amelyek bizonyos feltételek alapján csoportokra oszlanak. Ezután alkalmazzon bizonyos funkciókat ezekre a csoportokra. Végül kombinálja a kimenetet adatstruktúra formájában.

Ebben a cikkben áttekintjük a csoport funkciók szerinti alaphasználatait a panda pythonjában. Az összes parancsot a Pycharm szerkesztőjén hajtják végre.

Beszéljük meg a csoport fő koncepcióját a munkavállalói adatok segítségével. Hoztunk létre egy adatkeretet néhány hasznos alkalmazotti adattal (Employee_Names, Megnevezés, Employee_city, Age).

Karakterlánc-összefűzés a funkció szerinti csoportosítással

A groupby függvény segítségével összefűzheti a karakterláncokat. Ugyanazok a rekordok egyetlen cellában összekapcsolhatók a ',' jellel.

Példa

A következő példában az alkalmazottak kijelölése oszlop alapján rendeztük az adatokat, és csatlakoztunk az azonos megnevezésű alkalmazottakhoz. A lambda függvényt alkalmazzák az 'Employees_Name'.

import pandák, mint pd
df = pd.DataFrame (
'Employee_Names': ['Sam', 'Ali', 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
„Megnevezés”: [„Vezető”, „Személyzet”, „Informatikai tiszt”, „Informatikai tiszt”, „HR”, „Személyzet”, „HR”, „Személyzet”, „Csapatvezető”],
'Employee_city': ['Karachi', 'Karachi', 'Islamabad', 'Islamabad', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabad'],
„Employee_gege”: [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df1 = df.groupby ("Megnevezés") ['Employee_Names'].alkalmazni (lambda Employee_Names: ','.csatlakozás (Employee_Names))
nyomtatás (df1)

A fenti kód végrehajtásakor a következő kimenet jelenik meg:

Az értékek rendezése növekvő sorrendben

Használja a groupby objektumot egy szokásos adatkeretbe a ".to_frame () ', majd az újraindexeléshez használja a reset_index () elemet. Oszlopértékek rendezése a sort_values ​​() meghívásával.

Példa

Ebben a példában az alkalmazott korát növekvő sorrendben rendezzük. A következő kóddarab használatával növekvő sorrendben megkaptuk az 'Employee_Age' szót az 'Employee_Names' néven.

import pandák, mint pd
df = pd.DataFrame (
'Employee_Names': ['Sam', 'Ali', 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
„Megnevezés”: [„Vezető”, „Személyzet”, „Informatikai tiszt”, „Informatikai tiszt”, „HR”, „Személyzet”, „HR”, „Személyzet”, „Csapatvezető”],
'Employee_city': ['Karachi', 'Karachi', 'Islamabad', 'Islamabad', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabad'],
„Employee_gege”: [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df1 = df.groupby ('Employee_Names') ['Employee_Age'].összeg().bekeretezni().reset_index ().sort_values ​​(by = 'Employee_Age')
nyomtatás (df1)

Aggregátumok használata groupby-val

Számos olyan funkció vagy összesítés áll rendelkezésre, amelyeket alkalmazhat az adatcsoportokra, például a count (), sum (), átlag (), medián (), mode (), std (), min (), max ().

Példa

Ebben a példában a 'count ()' függvényt alkalmaztuk a groupby-val az azonos „Employee_city” -be tartozó alkalmazottak számolásához.

import pandák, mint pd
df = pd.DataFrame (
'Employee_Names': ['Sam', 'Ali', 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
„Megnevezés”: [„Vezető”, „Személyzet”, „Informatikai tiszt”, „Informatikai tiszt”, „HR”, „Személyzet”, „HR”, „Személyzet”, „Csapatvezető”],
'Employee_city': ['Karachi', 'Karachi', 'Islamabad', 'Islamabad', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabad'],
„Employee_gege”: [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df1 = df.groupby ('Employee_city').számol()
nyomtatás (df1)

Amint a következő kimenetet láthatja, a Megnevezés, az Alkalmazott_nevek és az Alkalmazott_Az oszlopok alatt számolja meg az azonos városhoz tartozó számokat:

Az adatok vizualizálása a groupby használatával

Az 'import matplotlib.pyplot ', az adatokat grafikonokká vizualizálhatja.

Példa

A következő példa itt a groupby utasítás használatával vizualizálja az 'Employee_Age' értéket az 'Employee_Nmaes' kifejezéssel az adott DataFrame-ből.

import pandák, mint pd
import matplotlib.pyplot mint plt
adatkeret = pd.DataFrame (
'Employee_Names': ['Sam', 'Ali', 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
„Megnevezés”: [„Vezető”, „Személyzet”, „Informatikai tiszt”, „Informatikai tiszt”, „HR”, „Személyzet”, „HR”, „Személyzet”, „Csapatvezető”],
'Employee_city': ['Karachi', 'Karachi', 'Islamabad', 'Islamabad', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabad'],
„Employee_gege”: [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
plt.clf ()
adatkeret.groupby ('Employee_Names').összeg().telek (fajta = 'bar')
plt.előadás()

Példa

Ha a halmozott gráfot a groupby segítségével szeretné ábrázolni, fordítsa el a 'stacked = true' elemet, és használja a következő kódot:

import pandák, mint pd
import matplotlib.pyplot mint plt
df = pd.DataFrame (
'Employee_Names': ['Sam', 'Ali', 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
„Megnevezés”: [„Vezető”, „Személyzet”, „Informatikai tiszt”, „Informatikai tiszt”, „HR”, „Személyzet”, „HR”, „Személyzet”, „Csapatvezető”],
'Employee_city': ['Karachi', 'Karachi', 'Islamabad', 'Islamabad', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabad'],
„Employee_gege”: [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df.groupby (['Employee_city', 'Employee_Names']).méret().halmozás ().plot (kind = 'bar', stacked = True, fontsize = '6')
plt.előadás()

Az alább megadott grafikonon a lerakott alkalmazottak száma, akik ugyanahhoz a városhoz tartoznak.

Változtassa meg az oszlop nevét a csoporttal

Az összesített oszlop nevét néhány új módosított névvel is módosíthatja az alábbiak szerint:

import pandák, mint pd
import matplotlib.pyplot mint plt
df = pd.DataFrame (
'Employee_Names': ['Sam', 'Ali', 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
„Megnevezés”: [„Vezető”, „Személyzet”, „Informatikai tiszt”, „Informatikai tiszt”, „HR”, „Személyzet”, „HR”, „Személyzet”, „Csapatvezető”],
'Employee_city': ['Karachi', 'Karachi', 'Islamabad', 'Islamabad', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabad'],
„Employee_gege”: [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df1 = df.groupby ('Employee_Names') ['Megnevezés'].összeg().reset_index (név = 'Alkalmazott_megjelölés')
nyomtatás (df1)

A fenti példában a "Megnevezés" név "Employee_Designation" -re változik.

Csoport beolvasása kulcs vagy érték szerint

A groupby utasítás használatával hasonló rekordokat vagy értékeket kaphat az adatkeretről.

Példa

Az alábbi példában a „Megnevezés” alapján csoportos adatokkal rendelkezünk. Ezután a 'Staff' csoportot a .getgroup ('Személyzet').

import pandák, mint pd
import matplotlib.pyplot mint plt
df = pd.DataFrame (
'Employee_Names': ['Sam', 'Ali', 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
„Megnevezés”: [„Menedzser”, „Munkatárs”, „Informatikai tiszt”, „Informatikai tiszt”, „HR”, „Munkatárs”, „HR”, „Munkatárs”, „Csapatvezető”],
'Employee_city': ['Karachi', 'Karachi', 'Islamabad', 'Islamabad', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabad'],
„Employee_gege”: [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
kivonat_érték = df.groupby („Megnevezés”)
print (kivonat_érték.get_group ('Személyzet'))

A következő eredmény jelenik meg a kimeneti ablakban:

Érték hozzáadása a csoportlistához

Hasonló adatok a groupby utasítás használatával listában is megjeleníthetők. Először csoportosítsa az adatokat egy feltétel alapján. Ezután a függvény alkalmazásával könnyedén felveheti ezt a csoportot a listákba.

Példa

Ebben a példában hasonló rekordokat illesztettünk be a csoportlistába. Az összes alkalmazottat az „Employee_city” alapján csoportokba osztják, majd a „Lambda” függvény alkalmazásával ezt a csoportot lista formájában kapják meg.

import pandák, mint pd
df = pd.DataFrame (
'Employee_Names': ['Sam', 'Ali', 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
„Megnevezés”: [„Menedzser”, „Munkatárs”, „Informatikai tiszt”, „Informatikai tiszt”, „HR”, „Munkatárs”, „HR”, „Munkatárs”, „Csapatvezető”],
'Employee_city': ['Karachi', 'Karachi', 'Islamabad', 'Islamabad', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabad'],
„Employee_gege”: [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df1 = df.groupby ('Employee_city') ['Employee_Names'].alkalmazni (lambda group_series: group_series.tolist ()).reset_index ()
nyomtatás (df1)

A Transform funkció használata a groupby-val

Az alkalmazottak életkoruk szerint vannak csoportosítva, ezeket az értékeket összeadva, és a 'átalakítás' funkció használatával a táblázat új oszlopot ad hozzá:

import pandák, mint pd
df = pd.DataFrame (
'Employee_Names': ['Sam', 'Ali', 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
„Megnevezés”: [„Menedzser”, „Munkatárs”, „Informatikai tiszt”, „Informatikai tiszt”, „HR”, „Munkatárs”, „HR”, „Munkatárs”, „Csapatvezető”],
'Employee_city': ['Karachi', 'Karachi', 'Islamabad', 'Islamabad', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabad'],
„Employee_gege”: [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df ['összeg'] = df.groupby (['Employee_Names']) ['Employee_Age'].átalakítás ('összeg')
nyomtatás (df)

Következtetés

Ebben a cikkben megvizsgáltuk a groupby állítás különböző felhasználási módjait. Megmutattuk, hogyan oszthatja fel az adatokat csoportokba, és különböző összesítések vagy függvények alkalmazásával könnyedén visszakeresheti ezeket a csoportokat.

Microsoft Sculpt Touch vezeték nélküli egér áttekintés
Nemrég olvastam a Microsoft Sculpt Touch vezeték nélküli egér és úgy döntött, hogy megveszi. Egy ideig használat után úgy döntöttem, hogy megosztom ve...
AppyMouse képernyős Trackpad és egérmutató a Windows táblagépekhez
A táblagép-felhasználók gyakran hiányolják az egérmutatót, különösen akkor, ha szokták használni a laptopokat. Az érintőképernyős okostelefonok és táb...
Az egér középső gombja nem működik a Windows 10 rendszerben
A középső egérgomb segít átgörgetni a hosszú weboldalakat és a sok adatot tartalmazó képernyőket. Ha ez leáll, akkor a billentyűzet segítségével görge...