Groupby — vrij eenvoudig concept. We kunnen een groep categorieën maken en de functie toepassen op de categorieën. Het is een eenvoudig concept, maar het is een uiterst waardevolle techniek die veel wordt gebruikt in data wetenschap. In echte data science-projecten heb je te maken met grote hoeveelheden van gegevens en proberen dingen herhaaldelijk te doen, dus voor efficiëntie gebruiken we het Groupby-concept. Het Groupby-concept is erg belangrijk omdat het in staat is om data efficiënt te combineren, zowel qua performance als qua hoeveelheid code. Groepering verwijst voornamelijk naar een proces dat een of meer van de volgende stappen omvat:
- Scheiding: is een proces waarbij we gegevens in groepen verdelen door een aantal voorwaarden toe te passen op datasets .
- Toepassing: is een proces waarbij we op elke groep onafhankelijk een functie toepassen
- Consolidatie: is een proces waarbij we combineren verschillende datasets na het toepassen van groepering en resultaten in een datastructuur
De volgende afbeelding zal u helpen het proces te begrijpen dat betrokken is bij het Groupby-concept.
1. Groepeer de unieke waarden ​​uit de kolom "Team".
2. Er is nu een bucket voor elke groep
3. Gooi andere gegevens in emmers
4. Pas de functie toe op de gewichtskolom voor elke emmer.
Gegevens in groepen verdelen
Splitsen — het is een proces waarbij we de gegevens in groepen verdelen door enkele voorwaarden aan de datasets toe te passen. Om gegevens te scheiden, stellen wij bepaalde voorwaarden aan datasets. Om gegevens te scheiden, gebruiken we groupby ()
deze functie wordt gebruikt om gegevens in groepen te verdelen volgens bepaalde criteria . Panda`s-objecten kunnen worden onderverdeeld in elk van hun assen. Een abstracte definitie van groeperen is het verschaffen van een toewijzing van labels aan groepsnamen. Panda`s-gegevenssets kunnen worden opgesplitst in objecten. Er zijn verschillende manieren om gegevens te splitsen, bijvoorbeeld:
Opmerking: hier we verwijzen naar het groeperen van objecten als sleutels.
Gegevens groeperen met één sleutel:
Om gegevens met één sleutel te groeperen, geven we slechts één sleutel als argument door aan de groupby
functie.
< br>
|
Uitvoer:
Gegevens groeperen met meerdere sleutels:
Om gegevens met meerdere sleutels te groeperen, verzenden we meerdere sleutels in groupby
functie.
# pandas module import
import
panda`s als pd
# Definieer een woordenboek met werknemersgegevens
data1
=
{
`Naam`
: [
`Jai`
,
` Anuj`
,
`Jai`
,
` Princi`
,
`Gaurav`
,
` Anuj`
,
`Princi`
,
` Abhi`
],
`Leeftijd`
: [
27
,
24
,
22
,
32
,
33
,
36
,
27
,
32
],
`Adres`
: [
` Nagpur`
,
`Kanpur`
,
` Allahabad`
,
`Kannuaj` ​​
,
`Jaunpur`
,
`Kanpur`
,
` Allahabad `
,
`Aligarh`
],
`Kwalificatie`
: [
`Msc`
,
` MA`
,
` MCA`
,
` Phd`
,
`B.Tech`
,
`B.com`
,
` Msc`
,
`MA`
]}
# Converteer woordenboek in DataFrame
df
=
pd. DataFrame (data1)
(df)
Nu gaan we de naam- en kwalificatiegegevens groeperen met meerdere sleutels in de functie groupby
werken.
Uitvoer: Gegevens groeperen op sleutelsortering:
|
Nu passen we groupby ()
geen sortering
# de functie groupby gebruiken
# zonder sorteren
df.groupby ([
`Naam`
]).
sum
()
Uitvoer:
Nu gebruiken we groupby ()
met behulp van sorteren om potentiële snelheid te bereiken.
Uitvoer: Gegevens groeperen met objectkenmerken:
|
Uitvoer:
Itereren over de groepen
To herhalen over het groepsitem, we kunnen herhalen over een object vergelijkbaar met iterto.ols .
# pandas module import
importeer
panda`s als pd
# Definieer het woordenboek met de gegevens over werknemers
data1
=
{
`Naam`
: [
` Jai`
,
` Anuj`
,
`Jai`
,
`Princi`
,
`Gaurav`
,
` Anuj `
,
` Princi`
,
`Abhi`
],
` Leeftijd`
: [
27
,
24
,
22
,
32
,
33
,
36
,
27
,
32
],
` Adres`
: [
` Nagpur`
,
`Kanpur`
,
`Allahabad`
,
`Kannuaj` ​​
,
` Jaunpur `
,
` Kanpur`
,
`Allahabad`
,
` Aligarh`
],
`Kwalificatie`
: [
`Msc`
,
`MA`
,
` MCA`
,
`Phd`
,
`B.Tech`
,
` B.com`
,
`Msc`
,
` MA `
]}
# Converteer woordenboek naar DataFrame
df
=
pd.DataFrame (data1)
print
We herhalen nu het groepselement net zoals we doen in itertools.obj.
# element herhaling
Groep #
grp
=
df.groupby (
`Naam`
)
voor
naam, groep
in
grp:
print
(naam)
print
(groep)
print
()
Uitvoer:
Nu herhalen we een groepselement met meerdere sleutels
# element repeat
# van de groep met
# meerdere sleutels
grp
=
df.groupby ([
`Naam`
,
` Kwalificatie`
])
voor
naam, groep
in
grp:
pr int
(naam)
print
(groep)
print
( )
Uitvoer:
Zoals weergegeven in de uitvoer, is de groepsnaam een tuple
Groepsselectie
Om een groep, kunnen we een groep selecteren met behulp van GroupBy.get_group ()
. We kunnen een groep selecteren door de functie GroupBy.get_group
toe te passen. Deze functie selecteert één groep.
# pandas module import
import
panda`s als pd
# Definieer een woordenboek met werknemersgegevens
data1
=
{
`Naam`
: [
`Jai`
,
` Anuj`
,
`Jai`
,
` Princi`
,
`Gaurav`
,
`Anuj`
,
` Princi`
,
`Abhi`
],
print
(naam)
print
(groep)
print
()
Uitvoer:
Zoals weergegeven in de uitvoer, wordt de groepsnaam a tuple
Groepsselectie
Om een groep te selecteren, kunnen we een groep selecteren met behulp van GroupBy.get_group ()
. We kunnen een groep selecteren door de functie GroupBy.get_group
toe te passen. Deze functie selecteert één groep .
# pandas module import
import
panda`s als pd