Come usare il gruppo di in Pandas Python

Come usare il gruppo di in Pandas Python
Il gruppo Pandas per funzione viene utilizzato per raggruppare gli oggetti o colonne di dati di dati in base a condizioni o regole particolari. Utilizzando la funzione GroupBy, la gestione del set di dati è più semplice. Tuttavia, tutti i record correlati possono essere organizzati in gruppi. Utilizzando la libreria Pandas, è possibile implementare il gruppo Pandas per funzione per raggruppare i dati in base a diversi tipi di variabili. La maggior parte degli sviluppatori ha utilizzato tre tecniche di base per il gruppo per funzione. Innanzitutto, dividere in cui i dati si dividono in gruppi in base ad alcune condizioni particolari. Quindi, applica alcune funzioni a questi gruppi. Alla fine, combinare l'output sotto forma di struttura dei dati.

In questo articolo, attraverseremo gli usi di base di un gruppo per funzione nel Python di Panda. Tutti i comandi vengono eseguiti sull'editor Pycharm.

Discutiamo il concetto principale del gruppo con l'aiuto dei dati del dipendente. Abbiamo creato un frame dati con alcuni utili dettagli dei dipendenti (Employee_Names, Designation, Employee_City, Age).

Concatenazione della stringa usando il gruppo per funzione

Usando la funzione GroupBy, è possibile concaterare le stringhe. Gli stessi record possono essere uniti "in una singola cella.

Esempio

Nell'esempio seguente, abbiamo ordinato i dati in base alla colonna della designazione dei dipendenti e si sono uniti ai dipendenti che hanno la stessa designazione. La funzione Lambda viene applicata su "Employes_Name".

Importa panda come PD
df = pd.DataFrame (
'Employee_Names': ['Sam', 'Ali', 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza',
"Designazione": ['Manager', 'Staff', 'Ufficiale IT', 'Ufficiale IT', 'HR', 'Staff', 'HR', 'Staff', 'Team Lead'],
"Employee_city": ["Karachi", "Karachi", "Islamabad", "Islamabad", "Quetta", "Lahore", "Failabad", "Lahore", "Islamabad"],
'Employee_age': [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df1 = df.GroupBy ("Designation") ['Employee_Names'].Applica (Lambda Employee_Names: ','.join (dipendente_names))
Stampa (DF1)

Quando viene eseguito il codice sopra, viene visualizzato il seguente output:

Accordatura dei valori in un ordine ascendente

Utilizzare l'oggetto GroupBy in un normale telaio di dati chiamando '.to_frame () 'e quindi utilizzare reset_index () per reindexing. Ordina i valori della colonna chiamando Sort_Values ​​().

Esempio

In questo esempio, ordineremo l'età del dipendente in ordine crescente. Utilizzando il seguente pezzo di codice, abbiamo recuperato il 'Employee_age' in ordine crescente con 'Employee_Names'.

Importa panda come PD
df = pd.DataFrame (
'Employee_Names': ['Sam', 'Ali', 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza',
"Designazione": ['Manager', 'Staff', 'Ufficiale IT', 'Ufficiale IT', 'HR', 'Staff', 'HR', 'Staff', 'Team Lead'],
"Employee_city": ["Karachi", "Karachi", "Islamabad", "Islamabad", "Quetta", "Lahore", "Failabad", "Lahore", "Islamabad"],
'Employee_age': [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df1 = df.GroupBy ('Employee_Names') ['Employee_age'].somma().incorniciare().reset_index ().sort_values ​​(by = 'Employee_age')
Stampa (DF1)

Uso di aggregati con Groupby

Sono disponibili diverse funzioni o aggregazioni che è possibile applicare su gruppi di dati come Count (), Sum (), Media (), Median (), Mode (), std (), min (), max ().

Esempio

In questo esempio, abbiamo usato una funzione "Count ()" con GroupBy per contare i dipendenti che appartengono allo stesso "dipendente_city".

Importa panda come PD
df = pd.DataFrame (
'Employee_Names': ['Sam', 'Ali', 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza',
"Designazione": ['Manager', 'Staff', 'Ufficiale IT', 'Ufficiale IT', 'HR', 'Staff', 'HR', 'Staff', 'Team Lead'],
"Employee_city": ["Karachi", "Karachi", "Islamabad", "Islamabad", "Quetta", "Lahore", "Failabad", "Lahore", "Islamabad"],
'Employee_age': [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df1 = df.GroupBy ('Employee_city').contare()
Stampa (DF1)

Come puoi vedere il seguente output, sotto la designazione, i dipendenti e le colonne dei dipendenti, contano i numeri che appartengono alla stessa città:

Visualizza i dati utilizzando GroupBy

Usando il matplotlib di importazione.Pyplot ', puoi visualizzare i tuoi dati in grafici.

Esempio

Qui, il seguente esempio visualizza il 'Employee_age' con 'Employee_NMAES' dal dato di dati utilizzando l'istruzione GroupBy.

Importa panda come PD
Importa matplotlib.Pyplot come Plt
dataframe = pd.DataFrame (
'Employee_Names': ['Sam', 'Ali', 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza',
"Designazione": ['Manager', 'Staff', 'Ufficiale IT', 'Ufficiale IT', 'HR', 'Staff', 'HR', 'Staff', 'Team Lead'],
"Employee_city": ["Karachi", "Karachi", "Islamabad", "Islamabad", "Quetta", "Lahore", "Failabad", "Lahore", "Islamabad"],
'Employee_age': [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
Plt.clf ()
DataFrame.GroupBy ('Employee_Names').somma().trama (kind = 'bar')
Plt.spettacolo()

Esempio

Per tracciare il grafico impilato usando GroupBy, girare il 'stacked = true' e utilizzare il seguente codice:

Importa panda come PD
Importa matplotlib.Pyplot come Plt
df = pd.DataFrame (
'Employee_Names': ['Sam', 'Ali', 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza',
"Designazione": ['Manager', 'Staff', 'Ufficiale IT', 'Ufficiale IT', 'HR', 'Staff', 'HR', 'Staff', 'Team Lead'],
"Employee_city": ["Karachi", "Karachi", "Islamabad", "Islamabad", "Quetta", "Lahore", "Failabad", "Lahore", "Islamabad"],
'Employee_age': [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df.GroupBy (['Employee_city', 'Employee_Names']).misurare().unstack ().Plot (kind = 'bar', stacked = true, fontSize = '6')
Plt.spettacolo()

Nel grafico qui sotto, il numero di dipendenti accatastati che appartengono alla stessa città.

Modifica il nome della colonna con il gruppo di

È inoltre possibile modificare il nome della colonna aggregata con un nuovo nome modificato come segue:

Importa panda come PD
Importa matplotlib.Pyplot come Plt
df = pd.DataFrame (
'Employee_Names': ['Sam', 'Ali', 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza',
"Designazione": ['Manager', 'Staff', 'Ufficiale IT', 'Ufficiale IT', 'HR', 'Staff', 'HR', 'Staff', 'Team Lead'],
"Employee_city": ["Karachi", "Karachi", "Islamabad", "Islamabad", "Quetta", "Lahore", "Failabad", "Lahore", "Islamabad"],
'Employee_age': [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df1 = df.GroupBy ('Employee_Names') ['Designation'].somma().reset_index (name = 'Employee_Designation')
Stampa (DF1)

Nell'esempio sopra, il nome "designazione" viene modificato in "Employee_Designation".

Recupera il gruppo per chiave o valore

Utilizzando l'istruzione GroupBy, è possibile recuperare record o valori simili dal frame dati.

Esempio

Nell'esempio seguente, abbiamo dati di gruppo basati sulla "designazione". Quindi, il gruppo "personale" viene recuperato utilizzando il .getgroup ("staff").

Importa panda come PD
Importa matplotlib.Pyplot come Plt
df = pd.DataFrame (
'Employee_Names': ['Sam', 'Ali', 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza',
"Designazione": ['Manager', 'Staff', 'Ufficiale IT', 'Ufficiale IT', 'HR', 'Staff', 'HR', 'Staff', 'Team Lead'],
"Employee_city": ["Karachi", "Karachi", "Islamabad", "Islamabad", "Quetta", "Lahore", "Failabad", "Lahore", "Islamabad"],
'Employee_age': [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
extract_value = df.GroupBy ('designazione')
Stampa (extract_value.get_group ("staff"))

Il seguente risultato viene visualizzato nella finestra di output:

Aggiungi valore all'elenco di gruppi

Dati simili possono essere visualizzati sotto forma di un elenco utilizzando l'istruzione GroupBy. Innanzitutto, raggruppa i dati in base a una condizione. Quindi, applicando la funzione, puoi facilmente inserire questo gruppo negli elenchi.

Esempio

In questo esempio, abbiamo inserito record simili nell'elenco dei gruppi. Tutti i dipendenti sono divisi nel gruppo in base a "Employee_city", quindi applicando la funzione "Lambda", questo gruppo viene recuperato sotto forma di un elenco.

Importa panda come PD
df = pd.DataFrame (
'Employee_Names': ['Sam', 'Ali', 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza',
"Designazione": ['Manager', 'Staff', 'Ufficiale IT', 'Ufficiale IT', 'HR', 'Staff', 'HR', 'Staff', 'Team Lead'],
"Employee_city": ["Karachi", "Karachi", "Islamabad", "Islamabad", "Quetta", "Lahore", "Failabad", "Lahore", "Islamabad"],
'Employee_age': [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df1 = df.GroupBy ('Employee_City') ['Employee_Names'].Applica (Lambda Group_Series: Group_Series.elencare()).reset_index ()
Stampa (DF1)

Uso della funzione di trasformazione con GroupBy

I dipendenti sono raggruppati in base alla loro età, questi valori sommati e utilizzando la funzione "trasforma" viene aggiunta la nuova colonna nella tabella:

Importa panda come PD
df = pd.DataFrame (
'Employee_Names': ['Sam', 'Ali', 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza',
"Designazione": ['Manager', 'Staff', 'Ufficiale IT', 'Ufficiale IT', 'HR', 'Staff', 'HR', 'Staff', 'Team Lead'],
"Employee_city": ["Karachi", "Karachi", "Islamabad", "Islamabad", "Quetta", "Lahore", "Failabad", "Lahore", "Islamabad"],
'Employee_age': [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df ['sum'] = df.GroupBy (['Employee_Names']) ['Employee_age'].Transform ('Sum')
Stampa (DF)

Conclusione

Abbiamo esplorato i diversi usi della dichiarazione di GroupBy in questo articolo. Abbiamo mostrato come è possibile dividere i dati in gruppi e applicando diverse aggregazioni o funzioni, è possibile recuperare facilmente questi gruppi.