Pandas Groupby Mitjana

Pandas Groupby Mitjana



Quan sumem dos o més valors junts i la seva suma es divideix pel nombre total de valors sumats, el resultat és una mitjana. Pandas Mean retorna la mitjana de les dades o el valor al llarg d'un eix determinat. Pandas retornarà una sèrie amb la mitjana a través d'un eix si el mètode mean() s'aplica a un marc de dades. Els pandes retornen un valor numèric (número únic) si s'utilitza 'mean()' en una sèrie. Les funcions es poden aplicar a les categories després de crear els grups de categories. És una idea senzilla però una tècnica molt eficaç que s'aplica amb freqüència a la ciència de dades. Ens permet crear un resum de les dades de cada grup, aplicar modificacions específiques del grup i realitzar la filtració de dades. Amb la funció groupby(), l'objecte es pot dividir, es pot aplicar una funció i després es poden combinar els productes. Es poden agrupar grans conjunts de dades amb això i es poden realitzar operacions sobre els grups.

Com utilitzar el mètode groupby.mean() a Pandas?

Per calcular la mitjana d'un marc de dades o la mitjana de columnes específiques d'un marc de dades, podem utilitzar la funció groupby.mean(). Demostrarem com utilitzar-lo en els exemples següents.







Exemple # 01: determineu la mitjana d'una sola columna entera agrupant les dades d'una sola columna

Mitjançant la funció pd.DataFrame(), primer crearem un dataframe perquè puguem dividir les dades de la columna o columnes del dataframe en grups i després trobar-ne el valor mitjà. Abans de crear el marc de dades, hem d'importar el mòdul pandas juntament amb la biblioteca numpy.





Com es pot veure, hem creat el nostre marc de dades utilitzant el diccionari pandas. Tenim 3 columnes al nostre marc de dades df, és a dir, 'articles', 'fabricant' i 'quantitat'. A la columna 'articles', hem desat els valors ('camisa', 'corbata', 'pantalons', 'camisa', 'corbata', 'pantalons', 'camisa', 'pantalons', 'pantalons', ' corbata'), mentre que les columnes 'fabricant' i  'quantitat' contenen els valors ('Itàlia', 'França', 'Xina', 'França', 'Xina', 'Itàlia', 'Xina', 'Itàlia', 'França', 'Xina') i (13, 16, 21, 32, 26, 41, 24, 42, 12, 15) respectivament. Agrupem els valors a la columna del fabricant i determinem el valor mitjà de la quantitat per a cada fabricant diferent.





El valor del fabricant 'Xina' té un valor de quantitat mitjà de 21,5, el valor de quantitat mitjà de 'França' és de 20,0 i el valor de quantitat mitjà d''Itàlia' és de 32,0. També podem especificar un índex a la sortida mitjançant la funció reset_index amb la funció groupby.mean().



Exemple # 02: Trobeu la mitjana d'una sola columna flotant agrupant les dades d'una única columna

Hem vist com podem trobar la mitjana de la columna enter després d'agrupar les dades. Ara provem una altra columna de tipus de dades com float. Es crearà un marc de dades amb almenys una columna amb valors flotants mitjançant la funció pd.DataFrame().

En posar un diccionari dins del pd.DataFrame(), hem creat un dataframe amb tres columnes. La columna 'nom' emmagatzema els noms d'alguns jugadors aleatoris ('Sam', 'Jay', 'Leo', 'Mike', 'Will', 'Billy', 'Jhonny', 'Lara', 'Hanna', 'Tony'), la columna 'equip' que representa l'equip al qual pertany cada jugador ('A', 'A', 'B',  'A', 'B', 'A', 'C', 'B' ', 'C', 'C') i la columna 'alçada' emmagatzema les altures de cada jugador com a valor flotant (5.6, 5.4, 6.3, 5.2, 5.5, 6.4, 5.6, 5.8, 6.0, 5.2). Agrupem les dades a la columna 'equip' i determinem el valor mitjà d'alçada per a cada valor 'equip' diferent.

Podeu veure que el valor mitjà d'alçada dels jugadors de l'equip A és de 5,65, mentre que l'alçada mitjana dels jugadors dels equips B i C és de 5,866 i 5,6, respectivament.

Exemple # 03: determineu la mitjana de diverses columnes utilitzant la funció groupby.mean()

En els exemples anteriors, vam determinar la mitjana d'una sola columna. Tanmateix, també es pot determinar la mitjana de nombroses columnes per a cada grup. Creem un marc de dades amb més d'una columna numèrica, després d'importar els mòduls pandas i numpy.

Al marc de dades recentment creat, hi ha tres columnes amb les etiquetes 'nom', 'puntuació' i 'coincidències'. Els noms de columnes que tenen els valors de les dades com a cadena ('Ron', 'Jim', 'Dany', 'Jim', 'Jim', 'Dany', 'Ron', 'Ron', 'Dany', 'Jim' ), mentre que la 'puntuació' i les 'coincidències' consisteixen en dades numèriques com (3, 4, 2, 4, 1, 5, 2, 3, 1, 2) i (2, 3, 1, 2, 1, 3). , 4, 1, 2, 1). Ara cerquem la mitjana de la columna 'puntuació' i 'coincidències' després d'agrupar les dades de la columna 'nom'. Per a això s'utilitzarà la funció groupby.mean().

Es pot notar que el grup ‘Dany’ té una puntuació mitjana de 2,66 en 2,00 partits. El grup Jim té una puntuació mitjana de 2,75 i el valor mitjà dels partits jugats és d'1,75. Mentre que el grup 'Ron' té un valor mitjà de puntuació de 2,66 i el valor mitjà dels partits jugats és de 2,33.

La mitjana d'un grup de categories per l'objecte també es pot calcular mitjançant el mètode agg(). Proporcionarem la mitjana com a argument a la funció agg(). Per agregar utilitzant operacions simples o múltiples en l'eix donat, podem utilitzar la funció agg().

La sortida és la mateixa que abans.

Exemple # 04: determineu la mitjana de columnes específiques agrupant les columnes múltiples

En els exemples 1, 2 i 3, hem agrupat els valors o dades d'una sola columna. Ara agruparem diverses columnes utilitzant la llista d'etiquetes de columnes dins de la funció groupby(), i després trobarem el valor mitjà de cada grup. Es passarà un diccionari 'd' dins de la funció pd.Dataframe() com a entrada per crear el dataframe.

Hem creat el marc de dades necessari. La columna 'esports' emmagatzema el nom d'alguns esports ('Bàdminton', 'futbol', 'tennis', 'bàsquet', 'futbol', 'tennis', 'bàsquet', 'futbol', 'Bàdminton', ' bàsquet', 'bàsquet', 'tennis'), els noms dels països ('Xina', 'Rússia', 'Itàlia', 'Espanya', 'Rússia', 'Itàlia', 'Xina', 'Itàlia', ' Espanya', 'Xina', 'Rússia', 'Itàlia') s'emmagatzemen a la columna 'país'. Mentre que a la columna 'guanyar' hem emmagatzemat el nombre de partits guanyats per cada país en cada esport (13, 10, 6, 7, 10, 12, 7, 11, 8, 13, 11, 6). Utilitzem la funció groupby.mean() per trobar la mitjana dels valors de la columna 'win' agrupant les columnes 'esports' i 'country'.

La funció ha determinat amb èxit les mitjanes dels valors de la columna 'win' per a cada esport del país. El marc de dades agrupat per es pot restablir mitjançant la funció reset_index(), que també genera un nou índex, donant-li una estructura de marc de dades adequada.

S'afegeix un índex per a cada fila de dataframe. Per organitzar els resultats en una taula atractiva, també podem utilitzar la funció pivot().

Conclusió

En aquest tutorial, hem comentat quina és la mitjana o mitjana dels nombres i com trobar la mitjana d'una columna específica (una o més) després d'agrupar la columna o columnes d'un marc de dades. Hem implementat uns quants exemples en aquest article per ensenyar-vos a determinar la mitjana d'una sola columna entera o flotant agrupant les dades d'una sola columna; com determinar la mitjana de diverses columnes utilitzant la funció groupby.mean(); i també com determinar la mitjana de columnes específiques agrupant les múltiples columnes.