Hoja de Referencia de Pandas
Guía detallada para usar la biblioteca Pandas.
Instalación de Pandas
| Comando | Descripción |
|---|---|
conda install pandas |
La mejor manera de obtener pandas es a través de conda |
python3 -m pip install --upgrade pandas |
A través de PyPI |
pip install pandas |
Instalación estándar de pip |
Abreviaturas Clave e Importación de Paquetes
| Abreviatura | Descripción |
|---|---|
df |
Cualquier objeto DataFrame de Pandas |
s |
Cualquier objeto Series de Pandas |
Métodos de Importación
| Comando | Descripción |
|---|---|
import pandas as pd |
Importar pandas con el alias pd |
import numpy as np |
Importar numpy con el alias np |
Selección de Datos
| Comando | Descripción |
|---|---|
df[col] |
Devuelve una columna como una Series basada en el nombre de la columna |
df[[col1, col2]] |
Devuelve múltiples columnas como un DataFrame |
s.iloc[0] |
Seleccionar datos por posición |
s.loc['index_one'] |
Seleccionar datos por índice |
df.iloc[0,:] |
Devuelve la primera fila |
df.iloc[0,0] |
Devuelve el primer elemento de la primera columna |
Limpieza de Datos
| Comando | Descripción |
|---|---|
df.columns = ['a','b','c'] |
Renombrar columnas |
pd.isnull() |
Verificar valores nulos en un DataFrame; devuelve una matriz Booleana |
pd.notnull() |
Verificar valores no nulos en un DataFrame; devuelve una matriz Booleana |
df.dropna() |
Eliminar todas las filas que contienen valores nulos |
df.dropna(axis=1) |
Eliminar todas las columnas que contienen valores nulos |
df.dropna(axis=1, thresh=n) |
Eliminar todas las filas con menos de n valores no nulos |
df.fillna(x) |
Reemplazar todos los valores nulos en un DataFrame con x |
s.astype(float) |
Convertir el tipo de datos de la Series a float |
s.replace(1, 'one') |
Reemplazar todos los valores iguales a 1 con ‘one’ |
s.replace([1,3], ['one', 'three']) |
Reemplazar 1 con ‘one’ y 3 con ’three’ |
df.rename(columns=lambda x: x + 1) |
Renombrar columnas en lote |
df.rename(columns={'old_name': 'new_name'}) |
Renombrar selectivamente las columnas |
df.set_index('column_one') |
Cambiar la columna de índice |
df.rename(index=lambda x: x + 1) |
Renombrar índices en lote |
Importación de Datos
| Comando | Descripción |
|---|---|
pd.read_csv(filename) |
Importar datos desde un archivo CSV |
pd.read_table(filename) |
Importar datos desde un archivo de texto delimitado |
pd.read_excel(filename) |
Importar datos desde un archivo Excel |
pd.read_sql(query, connection_object) |
Importar datos desde una tabla/base de datos SQL |
pd.read_json(json_string) |
Importar datos desde una cadena JSON |
pd.read_html(url) |
Extraer tablas de una URL, cadena o archivo HTML |
pd.read_clipboard() |
Obtener contenido del portapapeles y pasarlo a read_table() |
pd.DataFrame(dict) |
Importar datos desde un diccionario (las claves son nombres de columnas, los valores son datos) |
Exportación de Datos
| Comando | Descripción |
|---|---|
df.to_csv(filename) |
Exportar datos a un archivo CSV |
df.to_excel(filename) |
Exportar datos a un archivo Excel |
df.to_sql(table_name, connection_object) |
Exportar datos a una tabla SQL |
df.to_json(filename) |
Exportar datos a un archivo de texto en formato JSON |
Procesamiento de Datos: Filter, Sort y GroupBy
| Comando | Descripción |
|---|---|
df[df[col] > 0.5] |
Seleccionar filas donde el valor en la columna ‘col’ es > 0.5 |
df.sort_values(col1) |
Ordenar datos por la columna col1 (ascendente por defecto) |
df.sort_values(col2, ascending=False) |
Ordenar datos por la columna col2 en orden descendente |
df.sort_values([col1, col2], ascending=[True, False]) |
Ordenar por col1 ascendente, luego col2 descendente |
df.groupby(col) |
Devuelve un objeto GroupBy agrupado por la columna ‘col’ |
df.groupby([col1, col2]) |
Devuelve un objeto GroupBy agrupado por múltiples columnas |
df.groupby(col1)[col2].mean() |
Devuelve la media de la columna col2 para cada grupo en col1 |
df.pivot_table(index=col1, values=[col2, col3], aggfunc=max) |
Crear una tabla dinámica agrupada por col1, calculando el máximo para col2 y col3 |
df.groupby(col1).agg(np.mean) |
Devuelve la media para todas las columnas agrupadas por col1 |
df.apply(np.mean) |
Aplicar la función np.mean a cada columna |
df.apply(np.max, axis=1) |
Aplicar la función np.max a cada fila |
Creación de Objetos de Prueba
| Comando | Descripción |
|---|---|
pd.DataFrame(np.random.rand(20,5)) |
Crear un DataFrame con 20 filas y 5 columnas de números aleatorios |
pd.Series(my_list) |
Crear una Series a partir de un objeto iterable my_list |
df.index = pd.date_range('1900/1/30', periods=df.shape[0]) |
Agregar un índice de fecha |
Visualización e Inspección de Datos
| Comando | Descripción |
|---|---|
df.head(n) |
Ver las primeras n filas de un DataFrame |
df.tail(n) |
Ver las últimas n filas de un DataFrame |
df.shape |
Ver el número de filas y columnas |
df.info() |
Ver índice, tipos de datos e información de memoria |
df.describe() |
Ver estadísticas resumidas para columnas numéricas |
s.value_counts(dropna=False) |
Ver valores únicos y recuentos para una Series |
df.apply(pd.Series.value_counts) |
Ver valores únicos y recuentos para cada columna en un DataFrame |
Fusión de Datos
| Comando | Descripción |
|---|---|
df1.append(df2) |
Agregar filas de df2 al final de df1 |
pd.concat([df1, df2], axis=1) |
Agregar columnas de df2 al final de df1 |
df1.join(df2, on=col1, how='inner') |
Join de estilo SQL entre las columnas de df1 y df2 |
Estadísticas de Datos
| Comando | Descripción |
|---|---|
df.describe() |
Ver estadísticas resumidas para columnas numéricas |
df.mean() |
Devuelve la media de todas las columnas |
df.corr() |
Devuelve el coeficiente de correlación entre columnas |
df.count() |
Devuelve el número de valores no nulos en cada columna |
df.max() |
Devuelve el valor máximo de cada columna |
df.min() |
Devuelve el valor mínimo de cada columna |
df.median() |
Devuelve la mediana de cada columna |
df.std() |
Devuelve la desviación estándar de cada columna |