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 [3]:
#creamos un dataframe aleatorio para practicar
np.random.seed(123456)
df=pd.DataFrame({'foo':np.random.random(1000000), 'key':range(100,1000100)})
In [4]:
#obtenemos un dato solamente
df[df.key==10099]
Out[4]:
In [5]:
#Cuanto tiempo tardamos al hacer la selección por llave
%timeit df[df.key==10099]
In [6]:
#pasamos las keys a que sean indices
df_with_index=df.set_index(['key'])
df_with_index[:5]
Out[6]:
In [7]:
df_with_index.loc[10099]
Out[7]:
In [8]:
#ahora con loc vemos a ver lo rapido que es
%timeit df_with_index.loc[10099]
In [9]:
#indices básicos
temps = pd.DataFrame({'city':["Missoula", "Philadelphia"],"Temperature": [70, 80]})
print(temps)
print(temps.columns)
In [10]:
#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 [12]:
df_f64 = pd.DataFrame(np.arange(0,1000,5), np.arange(0.0, 100.0, 0.5))
df_f64.iloc[:5]
Out[12]:
In [13]:
df_f64.index
Out[13]:
In [15]:
#extraemos un intervalo
df_interval = pd.DataFrame({"A":[1,2,3,4]}, index= pd.IntervalIndex.from_breaks([0, 0.5, 1.0, 1.5, 2.0]))
df_interval
Out[15]:
In [16]:
df_interval.index
Out[16]:
In [18]:
df_categorical = pd.DataFrame({'A': np.arange(6), 'B':list('aabbca')})
print(df_categorical)
In [19]:
sp500[:5]
Out[19]:
In [20]:
index_mov_to_column = sp500.reset_index()
index_mov_to_column[:5]
Out[20]:
In [21]:
index_mov_to_column.set_index('Sector')[:5]
Out[21]:
In [23]:
reindexed = sp500.reindex(index=['MMM','ABBV','FOO'])
reindexed
Out[23]:
In [24]:
sp500.reindex(columns=['Price','Book Value','NewCol'])[:5]
Out[24]:
In [ ]: