Groupby — concetto piuttosto semplice. Possiamo creare un gruppo di categorie e applicare la funzione alle categorie. È un concetto semplice, ma è una tecnica estremamente preziosa ampiamente utilizzata nei data scienza. Nei progetti data science nel mondo reale, avrai a che fare con grandi quantità di dati e cercando di fare le cose ripetutamente, quindi per efficienza utilizziamo il concetto Groupby. Il concetto di Groupby è davvero importante perché è in grado di combinare i dati in modo efficiente, sia in termini di prestazioni che di quantità di codice. Il raggruppamento si riferisce principalmente a un processo che coinvolge uno o più dei seguenti passaggi:
- Separazione: è un processo in cui dividiamo i dati in gruppi applicando alcune condizioni ai set di dati .
- Applicazione: è un processo in cui applichiamo una funzione a ciascun gruppo in modo indipendente
- Consolidamento: è un processo in cui combiniamo diversi set di dati dopo aver applicato il raggruppamento e i risultati in una struttura di dati
L`immagine seguente ti aiuterà a comprendere il processo coinvolto nel concetto di Groupby.
1. Raggruppa i valori univoci ​​dalla colonna "Team".
2. Ora c`è un bucket per ogni gruppo
3. Getta altri dati nei bucket
4. Applica la funzione alla colonna del peso per ciascun bucket.
Suddivisione dei dati in gruppi
Suddivisione — è un processo in cui dividiamo i dati in gruppi applicando alcune condizioni ai set di dati. Per separare i dati, applichiamo determinate condizioni ai set di dati. Per separare i dati, utilizziamo groupby ()
questa funzione viene utilizzata per dividere i dati in gruppi secondo alcuni criteri . Gli oggetti Panda possono essere suddivisi in uno qualsiasi dei loro assi. Una definizione astratta di raggruppamento consiste nel fornire una mappatura delle etichette ai nomi dei gruppi. I set di dati Pandas possono essere suddivisi in qualsiasi oggetto. Esistono diversi modi per dividere i dati, ad esempio:
Nota: qui ci riferiamo al raggruppamento di oggetti come chiavi.
Raggruppare i dati con una chiave:
Per raggruppare i dati con una chiave, passiamo solo una chiave come argomento al groupby
funzione.
< br>
|
Risultato:
Raggruppare i dati con più chiavi:
Per raggruppare i dati con più chiavi, trasmettiamo più chiavi in groupby
funzione.
# importazione modulo pandas
import
panda come pd
# Definisci un dizionario contenente i dati dei dipendenti
data1
=
{
`Nome`
: [
`Jai`
,
` Anuj`
,
`Jai`
,
` Princi`
,
`Gaurav`
,
` Anuj`
,
`Princi`
,
` Abhi`
],
`Età`
: [
27
,
24
,
22
,
32
,
33
,
],
`Indirizzo`
: [
` Nagpur`
,
`Kanpur`
,
` Allahabad`
,
`Kannuaj` ​​
,
`Jaunpur`
,
`Kanpur`
,
` Allahabad `
,
`Aligarh`
],
`Qualificazione`
: [
`Msc`
,
` MA`
,
` MCA`
,
` Phd`
,
`B.Tech`
,
`B.com`
,
` Msc`
,
`MA`
]}
# Converti dizionario in DataFrame
df
=
pd. DataFrame (data1)
(df)
Ora raggrupperemo i dati di Nome e Qualifica utilizzando più chiavi nella funzione groupby
.
Risultato: Raggruppamento dei dati in base all`ordinamento delle chiavi:
|
Ora stiamo applicando groupby ()
nessun ordinamento
# utilizzando la funzione groupby
# senza utilizzare l`ordinamento
df.groupby ([
`Nome`
]).
somma
()
Risultato:
Ora utilizziamo groupby ()
utilizzando l`ordinamento per ottenere un potenziale aumento della velocità.
Output: Raggruppare i dati con gli attributi dell`oggetto:
|
Risultato:
Iterazione sui gruppi
A iterare sull`elemento dei gruppi, possiamo iterare su un oggetto simile a iterto.ols .
# pandas module import
import
panda come pd
# Definisci il dizionario contenente i dati sui dipendenti
data1
=
{
`Nome`
: [
` Jai`
` Anuj`
,
`Jai`
,
`Princi`
,
`Gaurav`
,
` Anuj `
,
` Princi`
,
`Abhi`
],
` Age`
: [
],
` Indirizzo`
: [
` Nagpur`
,
`Kanpur`
,
`Allahabad`
,
`Kannuaj` ​​
,
` Jaunpur `
,
` Kanpur`
code> ,
`Allahabad`
,
` Aligarh`
],
`Qualificazione`
: [
`Msc`
,
`MA`
,
` MCA`
,
`Phd`
,
`B.Tech`
,
` B.com`
,
`Msc`
,
` MA `
]}
# Converti dizionario in DataFrame
df
=
pd.DataFrame (data1)
print < /codice>
Ora ripetiamo l`elemento del gruppo proprio come facciamo in itertools.obj.
# ripetizione elemento
Gruppo #
grp
=
df.groupby (
nome, gruppo
in
grp:
print
(nome)
print
(gruppo)
print
()
Output:
Ora eseguiamo un`iterazione su un elemento di gruppo contenente più chiavi
# ripetizione elemento
# del gruppo contenente
# chiavi multiple
grp
=
df.groupby ([
`Nome`
,
` Qualifica`
])
for
nome, gruppo
in
grp:
pr int
(nome)
print
(gruppo)
print
( )
Output:
Come mostrato nell`output, il nome del gruppo sarà una tupla
Selezione gruppo
Per selezionare un gruppo, possiamo selezionare un gruppo usando GroupBy.get_group()
. Possiamo selezionare un gruppo applicando la funzione GroupBy.get_group
questa funzione selezionerà un gruppo.
# pandas modulo import
import
panda come pd
# Definisci un dizionario contenente i dati dei dipendenti
data1
=
{
`Nome`
: [
`Jai`
,
` Anuj`
,
`Jai`
,
` Princi`
,
`Gaurav`
,
`Anuj`
,
` Princi`
,
`Abhi`
],
print
(nome)
print
(gruppo)
print
()
Output:
Come mostrato nell`output, il nome del gruppo sarà a tuple
Selezione gruppo
Per selezionare un gruppo, possiamo selezionare un gruppo usando GroupBy.get_group()
.Possiamo selezionare un gruppo applicando la funzione GroupBy.get_group
questa funzione selezionerà un gruppo .
# importazione modulo panda
importazione