A煤n no tienes acceso a esta clase

Crea una cuenta y contin煤a viendo este curso

Group by

18/28
Recursos

Aportes 31

Preguntas 7

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesi贸n.

Por favor David para tus proximos cursos ten en cuenta el subir las l铆neas de tu c贸digo como a la mitad de la pantalla, siempre se tapan con la barra de reproducci贸n y es un poco molesto.

Saludos!

Est谩 clase estuvo genial, pandas emplea muchas funcionalidades de SQL

lo que hacemos con to_frame es convertir una serie de datos a tipo DataFrame, es decir a un marco de datos.
.
El mismo resultado lo podemos obtener al poner corchete doble [[ ]]
.
Ej: [ [ 鈥榩rice鈥 ] ] #nos prsenta la informaci贸n como DataFrame
[鈥榩rice鈥橾 #nos presenta la informaci贸n como serie de datos. 馃槃

la funcion agregate, tambien puede escribirse como

agg()

asi:

#  Para aplicar muchas funciones con agg
df.agg(['mean', 'max', 'min'])

Otro error que recib铆 trabajando en macOS al momento de cargar el dataset de diamonds fue:

df=sns.load_dataset('diamonds')
df

Error
SSLCertVerificationError Traceback (most recent call last)
/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/urllib/request.py in do_open(self, http_class, req, **http_conn_args)
1318 try:
-> 1319 h.request(req.get_method(), req.selector, req.data, headers,
1320 encode_chunked=req.has_header(鈥楾ransfer-encoding鈥))

Intente acutilzar pip etc, pero nada servia hasta que revise el directorio de la aplicaci贸n en (ruta de carpetas) Macintosh HD > Applications > Python3.xx folder (la versi贸n que tengan instalada) > deben darle doble click en 鈥Install Certificates.command鈥 y despu茅s al otro archivo llamado "Update Shell Profile.command"
Con esto se soluciona el error

David muchas gracias por hacer estos videos. Quer铆a comentar que el cuaderno de colab que adjuntaste en este video es el de la clase 21, no el de la 19.

Entendido

df = sns.load_dataset('diamonds')
df

df.describe(include='all')

df.groupby('cut').mean()

df.groupby('cut').median()

df.groupby('cut')['carat'].mean()

df.groupby('cut')['carat'].count()

df.groupby('cut')['carat'].max()

df.groupby('cut')['carat'].min()

for i in [0,1,2,3,4]:
    print(i)


for key_group, group in df.groupby('cut'):
    grouped_price = group['price'].mean()
    print('Cut: {}, Price: ${}\n'.format(key_group, grouped_price))


df.groupby(['cut','color'])['price'].mean().to_frame()

df.groupby(['cut','color'])['price'].aggregate(['min',np.mean,max])

def mean_kilo(x):
    return np.mean(x)/1000


df.groupby(['cut','color'])['price'].aggregate(['min',np.mean,max,mean_kilo])

df.groupby(['cut','color'])['price'].aggregate(['min',np.mean,max,mean_kilo]).head(10)

dict_agg = {'carat':[min, max],'price':[np.mean, mean_kilo]}
dict_agg

df.groupby(['cut','color']).aggregate(dict_agg)

def f_filter(x):
    return mean_kilo(x['price']) > 4

df.groupby('cut').filter(f_filter)

df.groupby('cut').filter(f_filter)['cut'].unique()

S煤per aplicable, excelente clase, me emocion茅 y filtr茅 much铆simas cosas.

Muy interesante esta clase. El group by y el aggregate son muy 煤tiles para organizar nuestra data y sacarle valor a esta para un mejor an谩lisis.

vaya que una clase muy fuerte, me dan muchas ideas que quisiera aplicar. Me parece una super herramienta, siento que har铆a lo mismo con pandas en 10 minutos que con Excel en 1 hora 馃槃

Pandas y Numpy cuentan con demasiadas funciones muy utiles. El tema aqui con uno es saber las funciones que existen, para que sirven y como implementarlas en la Ingenieria de Datos.

Lo que me lleva a mi siguiente punto, podemos manipular exorbitantes cantidades de datos antes de pasar a SQL.

df.groupby(['cut', 'color'])['price'].describe()

Usando Describe ya tienen un panorama generall de cada grupo y no necesitan agregar funci贸n por funci贸n

df.groupby(鈥榗ut鈥)[鈥榗arat鈥橾.count()#cuantos datos tengo en de cada varible segun la columna carat

df.groupby(鈥榗ut鈥)[鈥榯able鈥橾.count()#cuantos datos tengo en de cada varible segun la columna table
鈥 notese que ambos dan los mismo el count() solo se aplico en (鈥榗ut鈥)

Group by Pandas

Excelente clase, muy bien explicada, ahora ya podemos aplicar filtros a nuestros data frames

Todo este curso lo hab铆a seguido en local instalando jupyter, no hab铆a tenido problemas hasta esta clase. La librer铆a seaborn causa problemas cuando trabajas en mac. Toca tomar la clase en google collab

Cuando en el 5:07 ejecuta esta l铆nea:

for key_group, group in df.groupby("cut"):
  grouped_price = group["price"].mean()
  print("cut: {}, price: {} \n".format(key_group,grouped_price))

No es m谩s f谩cil simplemente escribir:

df.groupby("cut")["price"].mean()

Me da el mismo resultado, sin tantos decimales y m谩s r谩pido.

Para practicar con otras bases de datos, podemos ver la lista con el siguiente c贸digo:

import seaborn as sns
sns.get_dataset_names()

Aqu铆 la lista que me arroj贸:
[鈥榓nagrams鈥,
鈥榓nscombe鈥,
鈥榓ttention鈥,
鈥榖rain_networks鈥,
鈥榗ar_crashes鈥,
鈥榙iamonds鈥,
鈥榙ots鈥,
鈥榚xercise鈥,
鈥榝lights鈥,
鈥榝mri鈥,
鈥榞ammas鈥,
鈥榞eyser鈥,
鈥榠ris鈥,
鈥榤pg鈥,
鈥榩enguins鈥,
鈥榩lanets鈥,
鈥榯axis鈥,
鈥榯ips鈥,
鈥榯itanic鈥橾

Demasiado acelerado el ponente. A cada rato tiene typos.

Podemos entender un poco mejor el filtro usando el siguiente c贸digo:

(df.groupby('cut').mean()/1000)['price']

cut
Ideal 3457.541970
Premium 4584.257704
Very Good 3981.759891
Good 3928.864452
Fair 4358.757764
Name: price, dtype: float64

Realmente la librer铆a pandas es muy versatil.

La sentencia group by sirve para agrupar datos, seg煤n un determinado criterio, y aplicar operaciones sobre los elementos del conjunto conformado.

En el 7:18 cuando aplica el aggregate se puede hacer con ayuda de las librer铆as o no, por ejemplo:

...aggregate(["min","mean","max"])

O se puede realizar as铆: (el resultado es el mismo)

...aggregate([np.min,np.mean.np.max])

Pens茅 que filter era el equivalente al having en Sql. O bueno, l贸gicamente es igual, ya que el filtro se aplica sobre los grupos, sin embargo veo que el filter retorna los registros individuales (antes del groupby) y el having retorna los registros ya agrupados.

Cuando ejecutan el comando import para seaborn y reciben un error, lo m谩s seguro es que no lo tiene instalado, pueden instalar desde la terminal.

import seaborn as sns
`ModuleNotFoundError Traceback (most recent call last)
in
----> 1 import seaborn as sns

ModuleNotFoundError: No module named 鈥榮eaborn鈥檂

.gruopby para crear grupos de 1 o mas variables
.aggregate para ejecutar 1 o mas funciones
.filter para agregar filtros

FILTRO

#APLICAR UNA FUNCION FILTRO AL GRUPO

#EVALUA SI LA MEDIA DE LOS PRECIOS DE UN GRUPO ES MAYOR QUE 4: RETORNA BOOL
def f_filter(x):
  #X['PRICE']: COLUMNA DE PRECIOS
  return mean_kilo(x['price']) > 4

#X: CADA GRUPO POR TIPO DE CUT: 5 GRUPOS: IDEAL, PREMIUM, VERY GOOD, GOOD
print("df.groupby('cut').filter(f_filter)")
print(df.groupby('cut').filter(f_filter))

Demasiados apuntes para una sola clase鈥 mi cuaderno est谩 lleno

驴Qu茅 vamos a aprender en esta clase?

En esta clase vamos a aprender a como agrupar nuestras categor铆as y sobre esta aplicar algunas funciones estad铆sticas e inclusive vamos a aprender que con aggregate podemos crear nuestra propia funci贸n y aplicarla.

excelente clase

muchas gracias, excelente la cantidad de ejemplos y posibilidades.