Aprenda lo básico para trabajar con pandas DataFrames: la estructura de datos básica en pandas, una potente biblioteca de manipulación de datos.
Si quieres iniciarte en el análisis de datos en Python, pandas es una de las primeras librerías con las que deberías aprender a trabajar. Desde importar datos de múltiples fuentes, como archivos CSV y bases de datos, hasta manejar datos que faltan y analizarlos para obtener información, pandas te permite hacer todo lo anterior.
Para empezar a analizar datos con pandas, debe comprender la estructura de datos fundamental en pandas: marcos de datos.
En este tutorial, aprenderá los conceptos básicos de pandas dataframes y métodos comunes para crear dataframes. A continuación, aprenderá a seleccionar filas y columnas del dataframe para recuperar subconjuntos de datos.
Por todo esto y mucho más, empecemos.
Instalación e importación de Pandas
Como pandas es una biblioteca de análisis de datos de terceros, primero debe instalarla. Se recomienda instalar paquetes externos en una carpeta entorno virtual para su proyecto.
Si utiliza el Distribución Anaconda de Pythonpuede utilizar conda
para la gestión de paquetes.
conda install pandas
También puedes instalar pandas usando pip:
pip install pandas
⚙ La librería pandas requiere NumPy como dependencia. Así que si NumPy no está ya instalado, también se instalará durante el proceso de instalación.
Después de instalar pandas, puede importarlo a su entorno de trabajo. En general, pandas se importa bajo el alias pd
:
import pandas as pd
¿Qué es un DataFrame en Pandas?

La estructura de datos fundamental en pandas es marco de datos. Un marco de datos es una matriz bidimensional de datos con etiquetado índice y llamado columnas. Cada columna del marco de datos llamado pandas seriecomparten un índice común.
He aquí un marco de datos de ejemplo que crearemos desde cero en los próximos minutos. Este marco de datos contiene datos sobre cuánto gastan seis estudiantes en cuatro semanas.

Los nombres de los alumnos son las etiquetas de las filas. Y las columnas se denominan "Semana1" a "Semana4". Observe que todas las columnas comparten el mismo conjunto de etiquetas de fila, también llamado index.
Cómo crear un Pandas DataFrame
Hay varias formas de crear un marco de datos pandas. En este tutorial, discutiremos los siguientes métodos:
- Creación de un marco de datos a partir de matrices NumPy
- Creación de un marco de datos a partir de un diccionario Python
- Creación de un marco de datos mediante la lectura de archivos CSV
Desde NumPy Arrays
Creemos un marco de datos a partir de Matriz NumPy.
Creemos la matriz de datos de forma (6,4) suponiendo que en una semana cualquiera, cada estudiante gasta entre $0 y $100. La dirección randint()
de NumPy random
devuelve una matriz de enteros aleatorios en un intervalo dado, [low,high)
.
import numpy as np
np.random.seed(42)
data = np.random.randint(0,101,(6,4))
print(data)
array([[51, 92, 14, 71],
[60, 20, 82, 86],
[74, 74, 87, 99],
[23, 2, 21, 52],
[ 1, 87, 29, 37],
[ 1, 63, 59, 20]])
Para crear un marco de datos pandas, puede utilizar la función DataFrame
y pasamos el array NumPy como la variable data
como se muestra:
students_df = pd.DataFrame(data=data)
Ahora podemos llamar a la función type()
para comprobar el tipo de students_df
. Vemos que es un DataFrame
objeto.
type(students_df)
# pandas.core.frame.DataFrame
print(students_df)

Vemos que, por defecto, tenemos una indexación por rangos que va de 0 al numRows
- 1, y las etiquetas de las columnas son 0, 1, 2, ..., numCols
-1. Sin embargo, esto reduce la legibilidad. Será útil añadir nombres descriptivos de columna y etiquetas de fila al marco de datos.
Vamos a crear dos listas: una para almacenar los nombres de los alumnos y otra para almacenar las etiquetas de las columnas.
students = ['Amy','Bob','Chris','Dave','Evelyn','Fanny']
cols = ['Week1','Week2','Week3','Week4']
Al llamar al DataFrame
se puede definir el parámetro index
y columns
a las listas de etiquetas de fila y etiquetas de columna a utilizar, respectivamente.
students_df = pd.DataFrame(data = data,index = students,columns = cols)
Ahora tenemos el students_df
con etiquetas descriptivas de filas y columnas.
print(students_df)

Para obtener información básica sobre el marco de datos, como los valores que faltan y los tipos de datos, puede llamar a la función info()
en el objeto marco de datos.
students_df.info()

De un diccionario de Python
También puede crear un marco de datos pandas a partir de un diccionario Python.
Toma, data_dict
es el diccionario que contiene los datos de los alumnos:
- Los nombres de los alumnos son las claves.
- Cada valor es una lista de cuánto gasta cada estudiante de la primera a la cuarta semana.
data_dict = {}
students = ['Amy','Bob','Chris','Dave','Evelyn','Fanny']
for student,student_data in zip(students,data):
data_dict[student] = student_data
Para crear un marco de datos a partir de un diccionario Python, utilice from_dict
como se muestra a continuación. El primer argumento corresponde al diccionario que contiene los datos (data_dict
). Por defecto, las teclas nombres de columna del marco de datos. Como nos gustaría establecer las claves como el etiquetas de filaset orient= 'index'
.
students_df = pd.DataFrame.from_dict(data_dict,orient='index')
print(students_df)

Para cambiar los nombres de las columnas por el número de la semana, establecemos las columnas con el valor cols
lista:
students_df = pd.DataFrame.from_dict(data_dict,orient='index',columns=cols)
print(students_df)

Lectura de un archivo CSV en un DataFrame de Pandas
Supongamos que los datos de los alumnos están disponibles en un archivo CSV. Puede utilizar la función read_csv()
para leer los datos del archivo en un marco de datos pandas. pd.read_csv('file-path')
es la sintaxis general, donde file-path
es la ruta al archivo CSV. Podemos establecer el names
a la lista de nombres de columnas a utilizar.
students_df = pd.read_csv('/content/students.csv',names=cols)
Ahora que sabemos cómo crear un marco de datos, aprendamos a seleccionar filas y columnas.
Seleccionar columnas de un DataFrame de Pandas
Existen varios métodos incorporados que puede utilizar para seleccionar filas y columnas de un marco de datos. Este tutorial repasará las formas más comunes de seleccionar columnas, filas y tanto filas como columnas de un marco de datos.
Seleccionar una sola columna
Para seleccionar una sola columna, puede utilizar df_name[col_name]
donde col_name
es la cadena que indica el nombre de la columna.
Aquí, seleccionamos sólo la columna 'Semana1'.
week1_df = students_df['Week1']
print(week1_df)

Selección de varias columnas
Para seleccionar varias columnas del marco de datos, introduzca la lista de todos los nombres de columna que desee seleccionar.
odd_weeks = students_df[['Week1','Week3']]
print(odd_weeks)

Además de este método, también puede utilizar la función iloc()
y loc()
para seleccionar columnas. Más adelante codificaremos un ejemplo.
Seleccionar filas de un DataFrame de Pandas

Utilización del método .iloc()
Para seleccionar filas con la tecla iloc()
introduzca los índices correspondientes a todas las filas en forma de lista.
En este ejemplo, seleccionamos las filas en índice impar.
odd_index_rows = students_df.iloc[[1,3,5]]
print(odd_index_rows)

A continuación, seleccionamos un subconjunto del marco de datos que contiene las filas de índice 0 a 2, el punto final 3 se excluye por defecto.
slice1 = students_df.iloc[0:3]
print(slice1)

Utilización del método .loc()
Para seleccionar las filas de un marco de datos utilizando la función loc()
debe especificar las etiquetas correspondientes a las filas que desea seleccionar.
some_rows = students_df.loc[['Bob','Dave','Fanny']]
print(some_rows)

Si las filas del marco de datos se indexan utilizando el rango por defecto 0, 1, 2, hasta
numRows
-1, entonces usandoiloc()
yloc()
son ambos equivalentes.
Seleccionar filas y columnas de un DataFrame de Pandas
Hasta ahora, ha aprendido a seleccionar filas o columnas de un marco de datos de pandas. Sin embargo, a veces puede necesitar seleccionar un subconjunto de ambos filas y columnas. ¿Cómo hacerlo? Puede utilizar la función iloc()
y loc()
métodos que hemos discutido.
Por ejemplo, en el siguiente fragmento de código, seleccionamos todos filas y columnas en los índices 2 y 3.
subset_df1 = students_df.iloc[:,[2,3]]
print(subset_df1)

Utilizando start:stop
crea una porción de start
hasta stop
. Así que cuando ignoras tanto el start
y stop
cuando se ignoran los valores de inicio y fin, el corte comienza al principio y se extiende hasta el final de la trama de datos seleccionando todos las filas.
Al utilizar el loc()
tienes que pasar las etiquetas de las filas y las columnas que quieres seleccionar, como se muestra:
subset_df2 = students_df.loc[['Amy','Evelyn'],['Week1','Week3']]
print(subset_df2)

Aquí, el marco de datos subset_df2
contiene el registro de Amy y Evelyn para la Semana 1 y la Semana 3.
Conclusión
Aquí tienes un rápido repaso de lo que has aprendido en este tutorial:
- Después de instalar pandas, puede importarlo bajo el alias
pd
. Para crear un objeto de marco de datos pandas, puede utilizar la funciónpd.DataFrame(data)
dondedata
se refiere al array N-dimensional o a un iterable que contiene los datos. Puede especificar la fila y el índice, y las etiquetas de las columnas estableciendo el parámetro opcional índice y columnas, respectivamente. - Utilizando
pd.read_csv(path-to-the-file)
lee el contenido del archivo en un marco de datos. - Puede llamar al
info()
en el objeto marco de datos para obtener información sobre las columnas, el número de valores perdidos, los tipos de datos y el tamaño del marco de datos. - Para seleccionar una sola columna, utilice
df_name[col_name]
y para seleccionar varias columnas, columna en particular,df_name[[col1,col2,...,coln]]
. - También puede seleccionar columnas y filas con las teclas
loc()
yiloc()
métodos. - Mientras que el
iloc()
toma el índice (o trozo de índice) de las filas y columnas a seleccionar, el métodoloc()
toma las etiquetas de fila y columna.
Puede encontrar los ejemplos utilizados en este tutorial en este cuaderno Colab.
A continuación, consulte este artículo de cuadernos colaborativos de ciencia de datos.