Hola Pandas!

Pandas = Manejo de informacion facil!

Que es pandas?

Pandas es un libreria de alto rendimiento, facil de usar para manejar estructuras de datos y analizarlas.

Checate mas en :

Para usar pandas, solo tiene que importar el modulo ..tambien te conviene importar numpy y matplotlib..juega n muy bien con pandas


In [1]:
import pandas as pd
import numpy as np # modulo de computo numerico
import matplotlib.pyplot as plt # modulo de graficas
# esta linea hace que las graficas salgan en el notebook
%matplotlib inline

Y yo para que quiero eso? De que sirve pandas?

Pandas te sirve si quieres:

  • Trabajar con datos de manera facil.
  • Explorar un conjunto de datos de manera rapida, enterder los datos que tienes.
  • Facilmente manipular informacion, por ejemplo sacar estadisticas.
  • Graficas patrones y distribuciones de datos.
  • Trabajar con Exceles, base de datos, sin tener que suar esas herramientas.

Y mucho mas...

El DataFrame en Pandas

Una estructura de datos en Pandas se llama un DataFrame, con el manejamos todos los datos y aplicamos tranformaciones.

Asi creamos un DataFrame vacio:


In [12]:
df = pd.DataFrame()

No nos sirve nada vacio, entonces agreguemos le informacion!

LLenando informacion con un Dataframe

Situacion:

Suponte que eres un taquero y quieres hacer un dataframe de cuantos tacos vendes en una semana igual y para ver que tacos son mas populares y echarle mas ganas en ellos,

Asumiremos:

  • Que vende tacos de Pastor, Tripa y Chorizo
  • Hay 7 dias en una semana de Lunes a Domingo (obvio)
  • Crearemos el numero de tacos como numeros enteros aleatorios (np.random.randint)

Ojo! Si ponemos la variable de un dataframe al final de una celda no saldra una tabla con los datos, eah!


In [13]:
df['Pastor']=np.random.randint(100, size=7)
df['Tripas']=np.random.randint(100, size=7)
df['Chorizo']=np.random.randint(100, size=7)

df.index=['Lunes','Martes','Miercoles','Jueves','Viernes','Sabado','Domingo']
df


Out[13]:
Pastor Tripas Chorizo
Lunes 95 87 40
Martes 45 67 86
Miercoles 47 43 29
Jueves 92 33 28
Viernes 66 21 60
Sabado 95 44 73
Domingo 43 74 69

Jugando con el Dataframe!

Estadisticas

Ya con teniendo un dataframe podemos hacer muchas cosas, por ejemplo sacar estadisticas, de medias, desviaciones estandares, cuantos elementos:


In [6]:
df.describe()


Out[6]:
Pastor Tripas Chorizo
count 7.000000 7.000000 7.000000
mean 67.714286 33.571429 45.000000
std 19.669895 29.045121 37.514442
min 35.000000 3.000000 4.000000
25% 60.500000 9.000000 8.500000
50% 68.000000 29.000000 52.000000
75% 77.000000 54.000000 74.500000
max 96.000000 77.000000 93.000000

pero talvez solo queramos estadisticas de Pastor, entonces seria:


In [7]:
df['Chorizo'].describe()


Out[7]:
count     7.000000
mean     45.000000
std      37.514442
min       4.000000
25%       8.500000
50%      52.000000
75%      74.500000
max      93.000000
Name: Chorizo, dtype: float64

o talvez solo nos interese del Lunes:

Ojo! Tenemos que usar .ix para seleccionar un renglon


In [8]:
df.ix['Lunes']


Out[8]:
Pastor     68
Tripas     62
Chorizo     4
Name: Lunes, dtype: int64

Grafica de cajas 'Boxplot'

Un boxplot nos da mucha informacion:

  • Cada caja esta centrada en la mediana
  • Tiene de alto la desviacion estandar entonces nos dice donde se encuentra el 60% de los datos.
  • Tiene los minimos y maximos de cada dato.

In [9]:
df.boxplot()
plt.title("Boxplot")
plt.show()


/usr/local/lib/python2.7/site-packages/ipykernel/__main__.py:1: FutureWarning: 
The default value for 'return_type' will change to 'axes' in a future release.
 To use the future behavior now, set return_type='axes'.
 To keep the previous behavior and silence this warning, set return_type='dict'.
  if __name__ == '__main__':

Combinando columnas

Que tal si queremos saber cuantos tacos vendimos en total? Pues solamente sumamos las columnas:


In [10]:
df['Tacos Total']=df['Pastor']+df['Tripas']+df['Chorizo']
df


Out[10]:
Pastor Tripas Chorizo Tacos Total
Lunes 68 62 4 134
Martes 96 77 9 182
Miercoles 58 3 8 69
Jueves 35 46 52 133
Viernes 68 29 73 170
Sabado 63 4 93 160
Domingo 86 14 76 176

Borrando columnas

Aveces simplemente queremos reducir el numero de datos, entonces podemos usar el drop:


In [11]:
df=df.drop("Chorizo",axis=1)
df


Out[11]:
Pastor Tripas Tacos Total
Lunes 68 62 134
Martes 96 77 182
Miercoles 58 3 69
Jueves 35 46 133
Viernes 68 29 170
Sabado 63 4 160
Domingo 86 14 176

Exportando a otro formato

Aveces queremos guardar nuestros datos (excel, csv, sql database, pickle, json) , por ejemplo a un excel:


In [19]:
df.to_csv("Tacos.csv")

Leyendo un DataFrame de otro formato

O alrevez, queremos crear un dataframe apartir de un archivo:


In [20]:
df=pd.read_csv("Tacos.csv")

Ejercicios:

  • Inventa un Dataframe de tu propio negocio, que quieres vender? Usa numeros aleatorios.
  • Saca estadisticas de cada columna.
  • Crea una nueva columna que toma en cuenta la otra informacion. (Promedio, etc..)

In [21]:



  File "<ipython-input-21-e58d666df0d6>", line 1
    blah blah blah
            ^
SyntaxError: invalid syntax

In [ ]: