data1 = pd.read_excel('../Data/Datos_2015.xlsx', sheetname='Centro') data2 = pd.read_excel('../Data/Datos_2015.xlsx', sheetname='Atemajac') data3 = pd.read_excel('../Data/Datos_2015.xlsx', sheetname='Tlaquepaque') data4 = pd.read_excel('../Data/Datos_2015.xlsx', sheetname='aguilas') #%% CO1 = pd.DataFrame(data1['CO']) CO1.columns = ['CO1'] CO2 = pd.DataFrame(data2['CO']) CO2.columns = ['CO2'] CO3 = pd.DataFrame(data3['CO']) CO3.columns = ['CO3'] CO4 = pd.DataFrame(data4['CO']) CO4.columns = ['CO4'] CO_total = CO1.join(CO2).join(CO3).join(CO4).dropna() mireporte1 = mylib.dqr(CO_total) #%% Aplicar la distancia euclideana sin normalizar D1 = sc.squareform(sc.pdist(CO_total.T, 'euclidean')) #%% PM10_1 = pd.DataFrame(data1['PM10']) PM10_1.columns = ['PM10_1'] PM10_2 = pd.DataFrame(data2['PM10']) PM10_2.columns = ['PM10_2'] PM10_3 = pd.DataFrame(data3['PM10']) PM10_3.columns = ['PM10_3'] PM10_4 = pd.DataFrame(data4['PM10']) PM10_4.columns = ['PM10_4'] PM10_total = PM10_1.join(PM10_2).join(PM10_3).join(PM10_4).dropna()
@author: israelcastilloh """ import pandas as pd import numpy as np import sklearn.metrics as skm import scipy.spatial.distance as sc from mylib import mylib #%% Leer los datos de la encuesta data = pd.read_excel('../Data/Test de películas(1-16).xlsx', encoding='latin_1') #para leer sin acentos #%% VOLVER A APLICAR EL DQR mireporte = mylib.dqr(data) #%% Seleccionar las columnas con calificaciones csel = np.arange(6, 243, 3) cnames = list(data.columns.values[csel]) datan = data[cnames] #%% Valoración promedio por pelicula movie_prom = datan.mean(axis=0) #por pelicula calif user_prom = datan.mean(axis=1) #por usuario calif #%% ELEGIR LAS COLUMNAS PARA CONVERTIRLAS A DUMMIES indx = np.array(data.dtypes == 'int64') col_list = list(data.columns.values[indx]) data_int = data[col_list]
# -*- coding: utf-8 -*- """ Created on Wed Jan 22 10:27:36 2020 @author: USUARIO """ import numpy as np import pandas as pd from mylib import mylib data_dir = '../Data/weatherAUS.csv' lluvia_AUS = pd.read_csv(data_dir) # Utilizar mi función para el reporte del csv mi_reporte = mylib.dqr(lluvia_AUS)
from mylib import mylib from sklearn.preprocessing import PolynomialFeatures #%% Data = pd.read_csv('Digitt.csv', index_col='id') data = Data.iloc[:, 0:20] data = data.join(Data.rate_0).join(Data.loan_amount_0) data.amount_to_be_lend[np.isnan( data.amount_to_be_lend )] = data.total_debt[np.isnan( data.amount_to_be_lend )] # llenamos todos los nan faltantes en amount_to_be_lend con los total_debt (ya que usualmente asi se comportan.) #plt.hist(data.age,bins=20) # Edad de las personas que piden el servicio #plt.hist(data.score,bins=20) # el 'score' esta distribuido de forma casi plana. #pd.value_counts(data.status).plot(kind='bar') # Se acepta casi a la mitad de las personas que solicitan el servicio reporte = mylib.dqr(data) #%% Para Status. Accepted vs Rejected. # Limpieza de base de datos. stat = data.drop(columns=['reasson', 'payment_status', 'created_at']) sts = mylib.dqr(stat) Quant = stat.loc[:, [ 'income', 'age', 'score', 'icc', 'rate', 'total_debt', 'amount_to_be_lend' ]] #Dummies = stat.loc[:,['gender', 'housing_type','occupancy_type','level_of_studies','state','marital_status']] Dummies = stat.loc[:, [ 'gender', 'housing_type', 'occupancy_type', 'level_of_studies', 'marital_status' ]] Y = pd.get_dummies(stat.status)
### DATA QUALITY REPORT import pandas as pd import numpy as np from mylib import mylib #%% Leer datos accidents = pd.read_csv('../Data/Accidents_2015.csv') casualties = pd.read_csv('../Data/Casualties_2015.csv') vehicles = pd.read_csv('../Data/Vehicles_2015.csv') #accidents = pd.read_csv('Accidents_2015.csv') #%% Usar la funcion dqr() reporte_accidents = mylib.dqr(accidents) reporte_casualties = mylib.dqr(casualties) reporte_vehicles = mylib.dqr(vehicles) #%% Consultas senciillas a un dataframe Num_by_date = pd.DataFrame(pd.value_counts(accidents['Date'])) vehicles_day = pd.DataFrame(accidents.groupby(['Date'])['Number_of_Vehicles'].sum()) number_vehicles = pd.DataFrame(pd.value_counts(accidents['Number_of_Vehicles'])) casualties_day = pd.DataFrame(accidents.groupby(['Date'])['Number_of_Casualties'].sum()) vehicles_m = pd.DataFrame(pd.value_counts(vehicles['Sex_of_Driver'])) result = Num_by_date.join(vehicles_day).join(casualties_day) vehicles_by_time = (accidents.groupby(['Time'])['Number_of_Vehicles'].sum())
from mylib import mylib import pandas as pd import numpy as np import matplotlib.pyplot as plt data= pd.read_csv('../DATA/datos_matricula_carrera_2.1718_feb-jul_2018.csv', encoding='latin1') data =data.iloc[:-1,:-1] data=data.drop(['Entidad','Periodo'],axis=1) reporte_calidad = mylib.dqr(data) #%% modelo = pd.value_counts(data['Modelo educativo']) carreras=pd.value_counts(data['Carrera Profesional Tecnico -Bachiller']) plantel=pd.value_counts(data['Plantel']) indice = pd.DataFrame(plantel.index.values) indice = pd.DataFrame(np.array(indice)) #%% modelos educativos modelo.plot.bar(title = 'Modelos educativos') plt.ylabel('# carreras') plt.xlabel('Modelo') #%% Matriculas por plantel indice = np.array(indice) arr = [] data.index= data.Plantel for k in indice: da= data.loc[k] arr.append(sum(da.Matricula)) arr = np.array(arr)
# -*- coding: utf-8 -*- """ Created on Wed Oct 23 20:19:29 2019 @author: Ariadna """ #importamos librerias import pandas as pd from mylib import mylib #%% importamos la base de datos data = pd.read_excel( 'file:///C:/Users/Ariadna/Desktop/CIFIV/Copia de M9 M2 AIW segmentation September WD4 - Oscar(2091).xlsx', sheet_name='Raw data 8XX') #removemos las columnas vacias data.drop(data.iloc[:, 30:], inplace=True, axis=1) #creamos un reporte de los datos que vamos a analizar reporte = mylib.dqr(data)
""" Created on Wed Feb 12 10:21:39 2020 @author: USUARIO """ import pandas as pd import sklearn.metrics as skm import scipy.spatial.distance as sc from mylib import mylib import numpy as np #%% Importar los datos accidents = pd.read_csv('../Data/Accidents_2015.csv') #%% Aplicar el dqr mireporte = mylib.dqr(accidents) #%% Elegir columnas sólo con datos enteros indx = np.array(accidents.dtypes == "int64") col_list = list(accidents.columns.values[indx]) accidents_int = accidents[col_list] del indx #%% Aplicar nuevamente DQR mireporte = mylib.dqr(accidents_int) #%% Filtrar por los valores únicos de las variables (con valores únicos <=20) indx = np.array(mireporte.Unique_Values <= 20) # indx=np.array(mireporte["Unique_Values"]<=20) col_list_2 = np.array(col_list)[indx] accidents_int_unique = accidents_int[col_list_2]
#%% Lista de valores maximos max_values = pd.DataFrame(columns=["Valores maximos"]) for col in list(data.columns.values): try: max_values.loc[col] = [data[col].max()] except: pass #%% Reporte final data_quality_report = columns.join(data_types).join(present_values).join( miss_values).join(unique_values).join(min_values).join(max_values) return data_quality_report #%% Usar mi funcion data_quality_report = mylib.dqr(data) #%% Usar Customer_number como índice #data.index=data.Customer_number data = data.set_index("Customer_number") #data.rename_axis("Customer_number",axis="index", inplace=True) #%%Separando columna de resultados resultados = data['Segmentation Offering'] data = data.iloc[:, :-1] #limpiamos truven simpler def replace_text(x, obje, repla): try: x = x.replace(obje, repla)
sns.heatmap(data.isnull(), yticklabels=False, cbar=False, cmap='copper').get_figure().savefig( 'hm_data.jpg', dpi=1000) #vemos los datos faltantes #%% columnas con los parámetros drop_columns = [ 'Year', 'Imt_Name', 'Iot_Name', 'SRC', 'Segment', 'Quarter', 'FAMILY', 'Month', 'Major_Minor', 'Maj', 'Minor', 'Ctrynum', 'Cost' ] datan = data.drop(drop_columns, axis=1) #limpiamos #datan=datan.replace(['M90','M20','M23','M22','M24','M95','M91'], # ['000M90','000M20','000M23','000M22','000M24','000M95','000M91']) datan.Leru = datan.Leru.fillna('000') #creamos un reporte de los datos que vamos a analizar reporte = mylib.dqr(data) sns.heatmap(datan.isnull(), yticklabels=False, cbar=False, cmap='copper').get_figure().savefig('hm_datan.jpg', dpi=300) #%% DataFrame con las columnas relacionadas con dinero finance = pd.DataFrame(data={ 'LC': data.LC, 'Maj': data.Maj, 'Minor': data.Minor, 'Cost': data.Cost }) sns.heatmap(finance.isnull(), yticklabels=False, cbar=False, cmap='copper').get_figure() #.savefig('hm_finance.jpg',dpi=300) #%% Analizamos maj-min #dependiente=LC
from mylib import mylib from sklearn.preprocessing import PolynomialFeatures from sklearn import linear_model from sklearn.metrics import (accuracy_score, precision_score, recall_score) from sklearn.model_selection import train_test_split import scipy.spatial.distance as sc from scipy.cluster import hierarchy from sklearn import datasets #%% 1. Importar datos. data = pd.read_csv( 'C:/Users/nicol/Documents/Tareas Iteso 5/Ciencia de datos/Proyecto final/HR_comma_sep.csv' ) #%% 2. Limpiar los datos y dar el reporte de calidad. dqr_data = mylib.dqr(data) #%% Reemplazar texto con función def replace_text(x, to_replace, replacement): try: x = x.replace(to_replace, replacement) except: pass return x #%% Reemplazamos data = replace_text(data, 'low', 0) data = replace_text(data, 'medium', 1) data = replace_text(data, 'high', 2)
""" Created on Mon Jan 27 09:12:16 2020 @author: USUARIO """ #%% import pandas as pd # Se leen los csv's y se procede a realizar el DQR con la librería df_1 = pd.read_csv('../Data/Accidents_2015.csv') df_2 = pd.read_csv('../Data/Casualties_2015.csv') df_3 = pd.read_csv('../Data/Vehicles_2015.csv') #%% from mylib import mylib # Se llama a la librería para realizar el DQR reporte_1 = mylib.dqr(df_1) reporte_2 = mylib.dqr(df_2) reporte_3 = mylib.dqr(df_3) #%% Guardar los DQR en un archivo csv reporte_1.to_csv('../Data/Accidents_DQR.csv') reporte_2.to_csv('../Data/Casualties_DQR.csv') reporte_3.to_csv('../Data/Vehicles_DQR.csv') #%% Consultas sencillas de información # value_counts: Return a Series containing counts of unique values # value_counts cuenta los valores que comparten un mismo índice, en este caso el índice es Date num_by_date = pd.DataFrame(pd.value_counts(df_1["Date"])) # groupby split the data into groups based on some criteria # Una vez se realiza el método groupby se accede a una columna en específico y se opera en ella vehicles_day = pd.DataFrame(df_1.groupby(["Date"])["Number_of_Vehicles"].sum())