Untitled

mail@pastecode.io avatar
unknown
python
2 months ago
4.1 kB
2
Indexable
Never
# =============================================================================
#  STATS
# =============================================================================

# Sirven para obtener estadísticas numéricas de un data frame

# Valores máximos
data.max()


# Valores mínimos
data.min()


data.sum()


data.service.value_counts()

data.nationality.value_counts()



# Unique -> Todos los valores únicos que tiene esa variable

data.service.unique()

# nunique -> Todos los valores no únicos que tiene esa variable

data.service.nunique()


# Si nos da dalla porque tenemos nueva versión de python hay que crear una df con solo variables numéricas
dataset_int = data.select_dtypes(include=[int, float])
dataset_int.max()


from plotnine import *

# ggplot(aes('nationality'), data)+geom_bar()

# =============================================================================
# GROUP BY
# =============================================================================

# Opción 1:
    
data22 = data.loc[:, ['service', 'bill']]

data22.groupby(by = ['services'], as_index = False).sum() # as_index = False -> Para que la variable services no sea índice y sea columna

# Opción 2:
    
data22 = data.loc[:, ['service', 'bill']]

data22.groupby(by = ['services']).sum().reset_index() # as_index = False -> Para que la variable services no sea índice y sea columna


# Agrupar por dos variables


data22 = data.loc[:, ['service', 'bill', 'gender']]

data22.groupby(by = ['services', 'gender'], as_index = False).mean()


# Opción 2: Agrupar dos variables sacando el máximo valor


data22 = data.loc[:, ['service', 'bill', 'gender']]

data22.groupby(by = ['services', 'gender', 'bill']).groupby(by=['service', 'gender'], as_index = False).max()




# Diferentes opciones para group by

data.groupby('service')['bill'].sum() # Es igual a la opción primera que hemos hecho
data.groupby(['service', 'gender'])['bill'].sum() # Es igual a la opción segunda que hemos hecho

# Aggregate

data22 = data.loc[:, ['service', 'gender', 'bill']].groupby(by=['gender', 'service'])\
    .agg(MAX=('bill', 'max'), MIN=('bill', 'min'), MEAN=('bill', 'mean')).reset_index()
    
# =============================================================================
# ##~ Correlaciones
# =============================================================================


# Correlaciones entre 2 variables

data.bill.corr(data.orders)

ggplot(aes('bill', 'orders'), data)+geom_point()

# Una variable en este caso variable bill, correlacionaca con las demás vlb numéricas
data.corrwith(data.bill)


xxx = dataset_int.corr()



# =============================================================================
# ##~ Corosstab
# =============================================================================


# Nos muestra la relación entre 2 variables

x = pd.crosstab(data.service, data.nationality)


# Sacar porcentajes por columnas, filas y todo el data set

# Entero
x = pd.crosstab(data.service, data.nationality, normalize='all')

# Columnas
x = pd.crosstab(data.service, data.nationality, normalize='columns')

# Filas
x = pd.crosstab(data.service, data.nationality, normalize='index')




# =============================================================================
# ##~ pd.cut
# =============================================================================


# Son para variables tipo numéricas


data['FACTURAS'] = pd.cut(data.bill, bins=[0,500, 1000, 3000], labels=['Bajo','Normales','Altas'])



# =============================================================================
#  ##~ Reemplazar
# =============================================================================

# Opción 1
                    #( to_replace, value)
data.service.replace('brilliant', 'BRILLANTE', inplace = True)


# Reemplazar 2 variables dentro de la misma variable

data.service.replace(['brilliant','normal'], ['BRILLANTE', 'NORMAL'], inplace = True)


# Variables tipo numérico


data.month.replace(1,100, inplace = True)


data.month.replace([1, 2],[100, 200], inplace = True)


data['service'] = data.service.str.replace(' ', '')


data.to_csv('DATA.csv')

Leave a Comment