In [1]:
import pandas as pd
primero definimos una variable que sea la hoja de calculo¶
In [2]:
path_file = "data/libros.xlsx"
en la hoja existen variables que son string de numeros. se genera un diccionario que son esos campos.¶
In [3]:
col_types = {"isbn": str, "isbn13": str}
Luego es fundamental definir el nombre de la hoja de excel. en este caso es "data". Ojo libro de excel tiene dos hojas. el nombre es un string¶
In [4]:
hoja = "data"
ahora creamos el dataframe con pandas (pd), defininiendo la ruta, nombre de hoja, typos de datos de campo¶
In [5]:
df = pd.read_excel(path_file, sheet_name = hoja, dtype = col_types)
ver los nombres de las columnas. Ojo ningun nombre puede tener espacios. Python quiere leer cada palabra como una variable¶
In [6]:
df.columns.values
Out[6]:
ver el data frame¶
In [7]:
df
Out[7]:
respuesta: Se usa el metodo "len" y se generan diccionarios para cada idioma
In [8]:
df1 = df [df["language_code"] == "eng"]
print("ingles =", len(df1))
df2 = df [df["language_code"] == "fre"]
print("frances =", len(df2))
df3 = df [df["language_code"] == "spa"]
print("español =", len(df3))
ejercicio: sacar el promedio del "average_rating" y entregarlo en un excel diferente¶
respuesta: primero se genera un diccionario con las anteriores variables (df1), luego se usa el método mean y std (promedio y desviación estándar) para cada valor. Ojo son tres valores. m1 = promedio df1 s1 = desviación estándar df1 estad_vals1 = promedio y desviación estándar de los libros en inglés
In [9]:
m1 = df1["average_rating"].mean()
m2 = df2["average_rating"].mean()
m3 = df3["average_rating"].mean()
s1 = df1["average_rating"].std()
s2 = df2["average_rating"].std()
s3 = df3["average_rating"].std()
estad_vals1 = [m1, s1]
estad_vals2 = [m2, s2]
estad_vals3 = [m3, s3]
print(estad_vals1, estad_vals2, estad_vals3)
ahora crear un libro de excel para que sea visible. Primero crear un data frame para cada valor encontrado
- definir nombres de campos. DECLARAR UN LISTA
- crear data frame. resultado 1 = r1 = df1
- este dataframe se decalra: index = indices data = valores encontrados. estad_vals columns = columnas (campos)
In [10]:
indices = ["Media", "Desviación Estándar"]
r1 = pd.DataFrame(data = estad_vals1, index = indices, columns= ["Valores"])
r2 = pd.DataFrame(data = estad_vals2, index = indices, columns= ["Valores"])
r3 = pd.DataFrame(data = estad_vals3, index = indices, columns= ["Valores"])
In [11]:
r1
Out[11]:
In [12]:
r2
Out[12]:
In [13]:
r3
Out[13]:
Crear un libro de excel
- declarar metodo de escritura "escritura = pd.ExcelWriter" engine="xlsxwriter" es el metodo de escritura.
- cada resultado "r" ecrito en una hoja diferente
- declarar el nombre de la hoja.
In [14]:
file_salida = "data/resultados.xls"
escritura = pd.ExcelWriter(file_salida, engine="xlsxwriter")
r1.to_excel(escritura, sheet_name = "Ingles")
r2.to_excel(escritura, sheet_name = "Frances")
r3.to_excel(escritura, sheet_name = "Español")
escritura.save()