En este tutorial veremos una introducción básicas a Pandas. Que quede claro que no me refiero al panda animal, sino a la librería de Python.
Como podemos ver en la web oficial de pandas:
pandas is an open source, BSD-licensed library providing high-performance, easy-to-use data structures and data analysis tools for the Python programming language.
Por lo tanto, pandas es una librería para el análisis de datos que cuenta con las estructuras de datos que necesitamos para limpiar los datos en bruto y que sean aptos para el análisis (por ejemplo, tablas). Es importante señalar aquí que, dado que pandas lleva a cabo tareas importantes, como alinear datos para su comparación, fusionar conjuntos de datos, gestión de datos perdidos, etc., se ha convertido en una librería muy importante para procesar datos a alto nivel en Python (es decir, estadísticas ). Pandas fue diseñada originalmente para gestionar datos financieros, y como alternativo al uso de hojas de cálculo (es decir, Microsoft Excel).
La estructura de datos básica de pandas se denomina DataFrame, que es una colección ordenada de columnas con nombres y tipos, parecido a una tabla de base de datos, donde una sola fila representa un único caso (ejemplo) y las columnas representan atributos particulares. Cabe señalar aquí que elementos en distintas columnas pueden ser de diferentes tipos.
Por lo tanto, como resumen decir que pandas nos proporciona las estructuras de datos y funciones necesarias para el análisis de datos.
Instalando pandas
Ahora vamos a ver cómo podemos instalar pandas en nuestras máquinas y utilizarla para el análisis de datos. La forma más sencilla de instalar pandas y evitar problemas de dependencia es mediante el uso de Anaconda, que dentro de pandas. Como puedes leer en la página de descarga Anaconda:
Anaconda is a completely free Python distribution (including for commercial use and redistribution). It includes more than 400 of the most popular Python packages for science, math, engineering, and data analysis
La distribución Anaconda es multiplataforma, lo que significa que se puede instalar en OS X, Windows y Linux. Voy a utilizar el instalador de OS X, ya que estoy trabajando en un equipo Mac OS X El Capitán, pero por supuesto puedes elegir el instalador que más se ajuste a tu sistema operativo. Personalmente, utilizaré el instalador gráfico (ten cuidado, son 339 MB).
Después de descargar el instalador, simplemente sigue los sencillos pasos del asistente de instalación y ya está. Todo lo que tenemos que hacer ahora con el fin de utilizar pandas es importar el paquete de la siguiente manera:
import pandas as pd
Estructuras de datos de pandas
Antes he mencionado una de las tres estructuras de datos disponibles en pandas, el DataFrame. Voy a describir esta estructura de datos en esta sección, además de otra estructura de datos de pandas, Series. Hay otra estructura de datos llamada Panel, pero no lo describiré en este tutorial, ya que no se utiliza con tanta frecuencia. DataFrame es una estructura de datos en 2D, Series es una estructura de datos en 1D, y Panel es en 3D y la mayor estructura de datos.
DataFrame
El DataFrame es una estructura de datos tabular que se compone de columnas y filas ordenadas. Para que todo sea más sencillo vamos a ver un ejemplo de creación de un DataFrame (tabla) de un diccionario de listas. El siguiente ejemplo muestra un diccionario que consta de dos keys, Name y Age, y su correspondiente lista de valores.
import pandas as pd import numpy as np name_age = {'Name' : ['Ali', 'Bill', 'David', 'Hany', 'Ibtisam'], 'Age' : [32, 55, 20, 43, 30]} data_frame = pd.DataFrame(name_age) print data_frame
Si ejecutas el script anterior, deberías obtener una salida similar a:
Observa que el constructor del DataFrame ordena las columnas en orden alfabético. Si deseas cambiar el orden de las columnas, debes escribir lo siguiente debajo de data_frame:
data_frame_2 = pd.DataFrame(name_age, columns = ['Name', 'Age'])
Para ver el resultado escribe: print data_frame_2
Decirte que no necesitas utilizar los labels por defecto 0, 1, 2, ..., y puedes usar a, b, c, ... en su lugar. En ese caso, puedes utilizar index en la script anterior de la siguiente manera:
data_frame_2 = pd.DataFrame(name_age, columns = ['Name', 'Age'], index = ['a', 'b', 'c', 'd', 'e'])
Está guay, ¿eh? Utilizando DataFrame, hemos sido capaces de ver nuestros datos organizados de forma tabular.
Series
Series es la segunda estructura de datos pandas de la que os voy a hablar. Series es un objeto unidimensional (1D) similar a la columna de una tabla. Si queremos crear un Series para un listado de nombres, podemos hacer lo siguiente:
series = pd.Series(['Ali', 'Bill', 'David', 'Hany', 'Ibtisam'], index = [1, 2, 3, 4, 5]) print series
La salida del script anterior será esta:
Funciones de pandas
En esta sección, vamos a ver ejemplos de algunas de las funciones que podemos utilizar con DataFrame y Series.
Head y Tail
Las funciones head() y tail() nos permiten ver una muestra de nuestros datos, especialmente cuando tenemos muchísimos. El número por defecto de elementos a mostrar es 5, pero puedes mostrar tantos como quieras. No hay problema.
Digamos que tenemos un Series compuesto por 20,000 elementos aleatorios (números):
import pandas as pd import numpy as np series = pd.Series(np.random.randn(20000))
Si queremos ver los primeros cinco elementos, y los cinco últimos, podemos hacer lo siguiente:
print series.head() print series.tail()
Add
Vamos a ver un ejemplo de la función add. En esta ocasión veremos cómo añadir dos DataFrames:
import pandas as pd dictionary_1 = {'A' : [5, 8, 10, 3, 9], 'B' : [6, 1, 4, 8, 7]} dictionary_2 = {'A' : [4, 3, 7, 6, 1], 'B' : [9, 10, 10, 1, 2]} data_frame_1 = pd.DataFrame(dictionary_1) data_frame_2 = pd.DataFrame(dictionary_2) data_frame_3 = data_frame_1.add(data_frame_2) print data_frame_1 print data_frame_2 print data_frame_3
Fuente: Abder-Rahman Ali