In questo articolo, esamineremo gli usi di base di un gruppo per funzione in panda's python. Tutti i comandi vengono eseguiti nell'editor Pycharm.
Discutiamo il concetto principale del gruppo con l'aiuto dei dati del dipendente. Abbiamo creato un dataframe con alcuni utili dettagli dei dipendenti (Employee_Names, Designation, Employee_city, Age).
Concatenazione di stringhe utilizzando Raggruppa per funzione
Usando la funzione groupby, puoi concatenare le stringhe. Gli stessi record possono essere uniti con ',' in una singola cella.
Esempio
Nell'esempio seguente, abbiamo ordinato i dati in base alla colonna "Designazione" dei dipendenti e ci siamo uniti ai Dipendenti che hanno la stessa designazione. La funzione lambda viene applicata su 'Employees_Name'.
importa panda come pddf = pd.DataFrame(
'Employee_Names':['Sam', 'Ali' , 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
'Designazione':['Manager', 'Staff', 'Responsabile IT', 'Responsabile IT', 'HR', 'Staff', 'HR', 'Staff', 'Team Lead'],
'Employee_city':['Karachi', 'Karachi', 'Islamabad', 'Islamabad', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabad'],
'Età_impiegato':[60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df1=df.groupby("Designazione")['Nomi_impiegati'].apply(lambda Employee_Names: ','.join(Nomi_Dipendenti))
stampa(df1)
Quando viene eseguito il codice precedente, viene visualizzato il seguente output:
Ordinamento dei valori in ordine crescente
Usa l'oggetto groupby in un normale dataframe chiamando '.to_frame()' e poi usa reset_index() per reindicizzare. Ordina i valori delle colonne chiamando sort_values().
Esempio
In questo esempio, ordineremo l'età del dipendente in ordine crescente. Utilizzando il seguente pezzo di codice, abbiamo recuperato 'Employee_Age' in ordine crescente con 'Employee_Names'.
importa panda come pddf = pd.DataFrame(
'Employee_Names':['Sam', 'Ali' , 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
'Designazione':['Manager', 'Staff', 'Responsabile IT', 'Responsabile IT', 'HR', 'Staff', 'HR', 'Staff', 'Team Lead'],
'Employee_city':['Karachi', 'Karachi', 'Islamabad', 'Islamabad', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabad'],
'Età_impiegato':[60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df1=df.groupby('Employee_Names')['Employee_Age'].somma().incorniciare().reset_index().sort_values(by='Età_dipendente')
stampa(df1)
Utilizzo di aggregati con groupby
Sono disponibili numerose funzioni o aggregazioni che è possibile applicare a gruppi di dati come count(), sum(), mean(), median(), mode(), std(), min(), max().
Esempio
In questo esempio, abbiamo utilizzato una funzione 'count()' con groupby per contare i dipendenti che appartengono alla stessa 'Employee_city'.
importa panda come pddf = pd.DataFrame(
'Employee_Names':['Sam', 'Ali' , 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
'Designazione':['Manager', 'Staff', 'Responsabile IT', 'Responsabile IT', 'HR', 'Staff', 'HR', 'Staff', 'Team Lead'],
'Employee_city':['Karachi', 'Karachi', 'Islamabad', 'Islamabad', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabad'],
'Età_impiegato':[60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df1=df.groupby('Impiegato_città').contare()
stampa(df1)
Come puoi vedere il seguente output, nelle colonne Designation, Employee_Names e Employee_Age, conta i numeri che appartengono alla stessa città:
Visualizza i dati utilizzando groupby
Usando "import matplotlib".pyplot', puoi visualizzare i tuoi dati in grafici.
Esempio
Qui, l'esempio seguente visualizza 'Employee_Age' con 'Employee_Nmaes' dal DataFrame dato utilizzando l'istruzione groupby.
importa panda come pdimport matplotlib.pyplot come plt
dataframe = pd.DataFrame(
'Employee_Names':['Sam', 'Ali' , 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
'Designazione':['Manager', 'Staff', 'Responsabile IT', 'Responsabile IT', 'HR', 'Staff', 'HR', 'Staff', 'Team Lead'],
'Employee_city':['Karachi', 'Karachi', 'Islamabad', 'Islamabad', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabad'],
'Età_impiegato':[60, 23, 25, 32, 43, 26, 30, 23, 35]
)
per favore.clf()
dataframe.groupby('Nomi_Dipendenti').somma().plot(tipo='bar')
per favore.mostrare()
Esempio
Per tracciare il grafico in pila usando groupby, gira 'stacked=true' e usa il seguente codice:
importa panda come pdimport matplotlib.pyplot come plt
df = pd.DataFrame(
'Nomi_impiegati':['Sam', 'Ali' , 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
'Designazione':['Manager', 'Staff', 'Responsabile IT', 'Responsabile IT', 'HR', 'Staff', 'HR', 'Staff', 'Team Lead'],
'Employee_city':['Karachi', 'Karachi', 'Islamabad', 'Islamabad', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabad'],
'Età_impiegato':[60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df.groupby(['Impiegato_città','Impiegato_Nomi']).dimensione().smontare().plot(kind='bar',stacked=True, fontsize='6')
per favore.mostrare()
Nel grafico sotto riportato, il numero di dipendenti impilati che appartengono alla stessa città.
Cambia il nome della colonna con il gruppo per
Puoi anche modificare il nome della colonna aggregata con un nuovo nome modificato come segue:
importa panda come pdimport matplotlib.pyplot come plt
df = pd.DataFrame(
'Nomi_impiegati':['Sam', 'Ali' , 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
'Designazione':['Manager', 'Staff', 'Responsabile IT', 'Responsabile IT', 'HR', 'Staff', 'HR', 'Staff', 'Team Lead'],
'Employee_city':['Karachi', 'Karachi', 'Islamabad', 'Islamabad', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabad'],
'Età_impiegato':[60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df1 = df.groupby('Employee_Names')['Designation'].somma().reset_index(name='Denominazione_Dipendente')
stampa(df1)
Nell'esempio sopra, il nome 'Designazione' è cambiato in 'Impiegato_Designazione'.
Recupera gruppo per chiave o valore
Usando l'istruzione groupby, puoi recuperare record o valori simili dal dataframe.
Esempio
Nell'esempio riportato di seguito, abbiamo dati di gruppo basati su "Designazione". Quindi, il gruppo 'Staff' viene recuperato utilizzando il tasto .getgroup('Personale').
importa panda come pdimport matplotlib.pyplot come plt
df = pd.DataFrame(
'Employee_Names':['Sam', 'Ali' , 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
'Designazione':['Manager', 'Staff', 'Responsabile IT', 'Responsabile IT', 'HR', 'Staff', 'HR', 'Staff', 'Team Lead'],
'Employee_city':['Karachi', 'Karachi', 'Islamabad', 'Islamabad', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabad'],
'Età_impiegato':[60, 23, 25, 32, 43, 26, 30, 23, 35]
)
valore_estratto = df.groupby('Denominazione')
print(extract_value.get_group('Personale'))
Il seguente risultato viene visualizzato nella finestra di output:
Aggiungi valore alla lista del gruppo group
Dati simili possono essere visualizzati sotto forma di elenco utilizzando l'istruzione groupby. Innanzitutto, raggruppa i dati in base a una condizione. Quindi, applicando la funzione, puoi facilmente inserire questo gruppo nelle liste.
Esempio
In questo esempio, abbiamo inserito record simili nell'elenco dei gruppi. Tutti i dipendenti vengono suddivisi nel gruppo in base a 'Employee_city', quindi applicando la funzione 'Lambda', questo gruppo viene recuperato sotto forma di elenco.
importa panda come pddf = pd.DataFrame(
'Nomi_impiegati':['Sam', 'Ali' , 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
'Designazione':['Manager', 'Staff', 'Responsabile IT', 'Responsabile IT', 'HR', 'Staff', 'HR', 'Staff', 'Team Lead'],
'Employee_city':['Karachi', 'Karachi', 'Islamabad', 'Islamabad', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabad'],
'Età_impiegato':[60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df1=df.groupby('Employee_city')['Employee_Names'].apply(lambda group_series: group_series.elencare()).reset_indice()
stampa(df1)
Utilizzo della funzione Trasforma con groupby
I dipendenti vengono raggruppati in base alla loro età, questi valori vengono sommati e utilizzando la funzione 'trasforma' viene aggiunta una nuova colonna nella tabella:
importa panda come pddf = pd.DataFrame(
'Employee_Names':['Sam', 'Ali' , 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
'Designazione':['Manager', 'Staff', 'Responsabile IT', 'Responsabile IT', 'HR', 'Staff', 'HR', 'Staff', 'Team Lead'],
'Employee_city':['Karachi', 'Karachi', 'Islamabad', 'Islamabad', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabad'],
'Età_impiegato':[60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df['somma']=df.groupby(['Nomi_Impiegato'])['Età_Impiegato'].trasforma('somma')
stampa (df)
Conclusione
Abbiamo esplorato i diversi usi dell'istruzione groupby in questo articolo. Abbiamo mostrato come è possibile dividere i dati in gruppi e, applicando diverse aggregazioni o funzioni, è possibile recuperare facilmente questi gruppi.