Geekflare recibe el apoyo de nuestra audiencia. Podemos ganar comisiones de afiliación de los enlaces de compra en este sitio.
En Desarrollo Última actualización: 15 de septiembre de 2023
Compartir en:
Escáner de seguridad de aplicaciones web Invicti - la única solución que ofrece verificación automática de vulnerabilidades con Proof-Based Scanning™.

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?

Qué-es-un-marco-de-datos-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.

pd-dataframe-ex

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)
pandas-dataframe-01

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)
pandas-dataframe-02

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()
imagen-114

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_dictcomo 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)
pandas-dataframe-from-dict

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)
pandas-dataframe-03

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)
una columna

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)
varias columnas

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

4-2

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)
filas impares

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)
seleccionar-filas

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)
algunas filas

Si las filas del marco de datos se indexan utilizando el rango por defecto 0, 1, 2, hasta numRows -1, entonces usando iloc() y loc() 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)
subgrupo del marco de datos

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)
df-subset

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ón pd.DataFrame(data) donde data 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() y iloc() métodos.
  • Mientras que el iloc() toma el índice (o trozo de índice) de las filas y columnas a seleccionar, el método loc() 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.

  • Bala Priya C
    Autor
Gracias a nuestros patrocinadores
Más lecturas sobre desarrollo
Potencia tu negocio
Algunas de las herramientas y servicios que le ayudarán a hacer crecer su negocio.
  • Invicti utiliza el Proof-Based Scanning™ para verificar automáticamente las vulnerabilidades identificadas y generar resultados procesables en tan solo unas horas.
    Pruebe Invicti
  • Web scraping, proxy residencial, gestor de proxy, desbloqueador web, rastreador de motores de búsqueda, y todo lo que necesita para recopilar datos web.
    Pruebe Brightdata
  • Monday.com es un sistema operativo de trabajo todo en uno que te ayuda a gestionar proyectos, tareas, trabajo, ventas, CRM, operaciones, flujos de trabajo y mucho más.
    Prueba el lunes
  • Intruder es un escáner de vulnerabilidades en línea que encuentra puntos débiles de ciberseguridad en su infraestructura, para evitar costosas violaciones de datos.
    Prueba Intruder