Aprendizaje Supervisado
Machine Learning
Objeto: Strings, es una secuencia de caracteres
int64: Usados para enteros
float64: Usados para punto flotante
bool: Tomar falso/verdadero
datetime64: Fechas y tiempo
timedelta: Expresar la distancia entre dos fechas
category: Toman valores categoricos
import pandas as pd
from IPython.core.display import display, HTML
display(HTML("<style>.container {width:90% !important;}</style>"))
invoices = pd.read_csv('https://raw.githubusercontent.com/FBosler/you-datascientist/master/invoices.csv')
invoices
invoices.info()
invoices.dtypes
for i in invoices.columns:
print("Columna: ", i, " Valores únicos: ", invoices[i].nunique())
invoices['Date'].unique()
invoices['Company Id'].unique()
invoices['Type of Meal'].unique()
invoices['Heroes Adjustment'].unique()
invoices['Type of Meal'] = invoices['Type of Meal'].astype('category')
invoices.dtypes
DataFrame
!nvidia-smi
invoices.groupby("Type of Meal")
La función groupby de Pandas crea un objeto que se llama DataFrameGroupBy. Esta función genera un objeto que se guarda en groups de tipo pandas.io.formats.printing.PrettyDict.
dir(invoices.groupby("Type of Meal"))
type(invoices.groupby("Type of Meal").groups)
invoices.groupby("Type of Meal").groups
invoices.loc[7]
invoices.loc[2]
Noten que el objeto groupso genera un objeto parecido a un diccionario el cual tiene como llaves cada uno de los grupos. Cada una de las llaves que representa el grupo contiene una lista de indices asociados a la fila de cada grupo.
Puedo pensar en iterar sobre cada uno de los datos únicos (la agrupación) y aplicar una función sobre cada uno de ellos.
grupos = invoices.groupby("Type of Meal").groups
for grupo in grupos.keys():
print(grupo)
grupos = invoices.groupby("Type of Meal").groups
for grupo in grupos.keys():
print(grupos[grupo])
diccionario = {}
grupos = invoices.groupby("Type of Meal").groups
for grupo in grupos.keys():
diccionario[grupo] = invoices.loc[grupos[grupo], "Meal Price"].mean()
diccionario
invoices.groupby("Type of Meal")["Meal Price"].mean()
Titanic
Filtrado de columnas
import pandas as pd
invoices = pd.read_csv('https://raw.githubusercontent.com/FBosler/you-datascientist/master/invoices.csv')
invoices
invoices.columns
invoices.loc[0, "Date of Meal"]
invoices[invoices["Date of Meal"] > "2016-05-31 07:00:00+02:00"]
pd.read_csv("nombre del archivo", sep="\t")