Untitled
unknown
python
2 years ago
4.1 kB
9
Indexable
# =============================================================================
# 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')
Editor is loading...
Leave a Comment