In [2]:
#importamos numpy y pandas
import numpy as np
import pandas as pd
#cargamos para manejar fechas
import datetime
from datetime import datetime, date
#configuramos el pandas para que nos muestre por pantalla como queremos
pd.set_option('display.notebook_repr_html', False)
pd.set_option('display.max_columns', 8)
pd.set_option('display.max_rows', 10)
pd.set_option('display.width', 60)
#usaremos matplotlib para los gráficos
import matplotlib.pyplot as plt
%matplotlib inline
#cargamos los datos y solamente leemos las columnas de la posicion 0 2 3 y 7
sp500 = pd.read_csv("tratamiento_datos/data/sp500.csv", index_col='Symbol', usecols=[0,2,3,7])
In [8]:
#creamos un dataframe aleatorio para practicar
np.random.seed(123456)
df=pd.DataFrame({'foo':np.random.random(1000000), 'key':range(100,1000100)})
In [10]:
#obtenemos un dato solamente
df[df.key==10099]
Out[10]:
In [14]:
#Cuanto tiempo tardamos al hacer la selección por llave
%timeit df[df.key==10099]
In [15]:
#pasamos las keys a que sean indices
df_with_index=df.set_index(['key'])
df_with_index[:5]
Out[15]:
In [16]:
df_with_index.loc[10099]
Out[16]:
In [17]:
#ahora con loc vemos a ver lo rapido que es
%timeit df_with_index.loc[10099]
In [24]:
#indices básicos
temps = pd.DataFrame({'city':["Missoula", "Philadelphia"],"Temperature": [70, 80]})
print(temps)
print(temps.columns)
In [28]:
#vamos a trabajar con indices
df_i64 = pd.DataFrame(np.arange(10,20), index=np.arange(0,10))
print(df_i64[:5])
print(df_i64.index)
In [ ]: