Aprende a utilizar las funciones básicas de Pandas en Python: read_csv, shape, dtypes, describe, mean, info, rename, head, tabulate, tail, sample, index, loc, set_index, columns, drop, value_counts y qcut.
Éste artículo está disponible explicado en video. Búscalo aquí: https://youtu.be/JdEJUzLcMus
Desde una ventana de terminal ejecuta el siguiente comando:
pip install pandas
Procedemos a importar la librería de Pandas en Python y opcionalmente tabulate si deseamos dar otra apariencia a la salida en consola.
import pandas as pd from tabulate import tabulate
Podemos utilizar un archivo de datos CSV para su manejo y análisis. Si deseas el que utilizamos de ejemplo, te dejo el enlace para su descarga:
https://drive.google.com/file/d/1i5s30GCPTqg07N4JU7T2l0Uu6lY7LU_z/view?usp=sharing
El archivo anterior contiene información sobre los votos obtenidos en las elecciones primarias de estados unidos. Para abrirlo, el código es:
df = pd.read_csv("votos.csv")
Para ver el tamaño (filas y columnas) del conjunto de datos que estamos usando, escribimos:
print ("Dimensiones: " , df.shape)
Podemos ver las columnas de nuestro dataset y cómo las interpretó Pandas en Python, es decir, qué tipo de datos le asignó a cada una.
print ("Tipos de datos") print (df.dtypes)
Podemos ver cuántos datos, la media, la desviación estándar, el valor mínimo y máximo de nuestro dataset utilizando:
print ("Datos estadísticos") print (df.describe())
Podemos renombrar las columnas que deseemos. Un ejemplo es:
df = df.rename(columns={ "state_abbreviation": "ab", "fraction_votes": "%v" })
En el código a continuación vemos cómo mostrar las primeras filas de nuestro dataset, las últimas, y filas aleatorias. Esto nos servirá para tener una muestra de datos para consultar. También utilizamos tabulate para darle otra apariencia a la salida. La instrucción headers=”keys” permite que se muestren como encabezados los nombres de las columnas.
primeras = df.head(3) print ("Primeras filas") print (tabulate(primeras, headers='keys')) ultimas = df.tail() print ("Ultimas filas") print (tabulate(ultimas, headers='keys')) muestrax = df.sample(6) print ("Muestra aleatoria") print (tabulate(muestrax, headers='keys'))
Código:
print (df.index) print (df.loc[0]) df2 = df.set_index("county") primeras2 = df2.head(2) print (tabulate(primeras2, headers='keys')) print (df2.index) print (df2.loc["Los Angeles"])
Aquí visualizamos el índice con df.index. Vemos que obtiene un índice numérico asignando a cada fila un valor consecutivo. Podemos utilizar ese valor para acceder a una fila. (df.loc[0]). También es posible cambiar el índice de un dataframe. Lo conseguimos con set_index. Al escribir set_index(county) le indicamos que queremos que county (condado) sea el nuevo índice. Si visualizamos ése índice (df2.index) nos devolverá una lista de etiquetas con los nombres de los condados. Si ahora utilizamos loc[“Los Angeles”] nos devolverá todas las filas asociadas a ése índice.
Hay dos formas de eliminar columnas y ambas utilizan el método drop. La primera sería:
df = df.drop('%v',1) #0 filas, 1 columnas
Aquí se elimina la fila y se reasigna el dataframe a éste nuevo estado.
Podemos utilizar:
df.drop('%v',1,inplace=True)
Que no necesita la asignación porque utiliza el parámetro inplace para indicarle que lo haga sobre sí mismo.
Si deseáramos ver cuántas veces aparece un valor (por ejemplo, el nombre de un candidato) en el dataset, podemos utilizar value_counts.
contador = df.candidate.value_counts(sort=True) print (contador) print ("El mas común es: ", str(contador[0])) print (contador.keys()[0])
El código anterior nos muestra una lista ordenada de mayor a menor de todos los candidatos, y a la derecha el valor de cuántas veces fue encontrado. Podemos acceder a un valor de esa lista con su valor de índice. Y si deseamos el nombre de la clave (en éste caso el nombre del candidato) utilizamos el método keys y le pasamos el valor del índice que queremos.
Ésta función la podemos utilizar para ‘discretizar’ una variable. Por ejemplo, deseamos agregar una columna que contenga:
“Muy pocos”, “Pocos”, “Considerable”, “Muchos”
De acuerdo a los votos obtenidos.
Lo haríamos de ésta forma:
clasificacion = ["Muy pocos", "Pocos", "Considerable", "Muchos"] df["Clasif"] = pd.qcut(df["votes"], 4 , clasificacion) print (tabulate(df.sample(5), headers='keys'))
Primero ponemos las etiquetas en una lista. Luego usamos el método qcut para separar en 4 grupos la columna votes. Se asignará el valor correspondiente de la lista clasificación a la columan Clasif.
Éste artículo también está disponible en video. Te lo dejo a continuación.