Cómo crear un marco de datos de Pandas [con ejemplos]

Publicado: 2022-12-08

Aprenda los conceptos básicos para trabajar con pandas DataFrames: la estructura de datos básica en pandas, una poderosa biblioteca de manipulación de datos.

Si desea comenzar con el análisis de datos en Python, pandas es una de las primeras bibliotecas con las que debe aprender a trabajar. Desde importar datos de múltiples fuentes, como archivos CSV y bases de datos, hasta manejar datos faltantes y analizarlos para obtener información: pandas le permite hacer todo lo anterior.

Para comenzar 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 los marcos de datos de pandas y los métodos comunes para crear marcos de datos. Luego, aprenderá a seleccionar filas y columnas del marco de datos para recuperar subconjuntos de datos.

Por todo esto y 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 un entorno virtual para su proyecto.

Si usa la distribución Anaconda de Python, puede usar conda para la administración de paquetes.

 conda install pandas

También puedes instalar pandas usando pip:

 pip install pandas

La biblioteca pandas requiere NumPy como dependencia. Entonces, si NumPy aún no está 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 con el alias pd :

 import pandas as pd

¿Qué es un marco de datos en Pandas?

¿Qué es un marco de datos en pandas?

La estructura de datos fundamental en pandas es el marco de datos . Un marco de datos es una matriz bidimensional de datos con un índice etiquetado y columnas con nombre . Cada columna en el marco de datos llamado serie pandas, comparte un índice común.

Este es un marco de datos de ejemplo que crearemos desde cero en los próximos minutos. Este marco de datos contiene información sobre cuánto gastan seis estudiantes en cuatro semanas.

pd-dataframe-ex

Los nombres de los estudiantes son las etiquetas de las filas. Y las columnas se denominan 'Week1' a 'Week4'. Observe que todas las columnas comparten el mismo conjunto de etiquetas de fila, también llamado índice .

Cómo crear un marco de datos de pandas

Hay varias formas de crear un marco de datos de pandas. En este tutorial, discutiremos los siguientes métodos:

  • Crear un marco de datos a partir de matrices NumPy
  • Creación de un marco de datos a partir de un diccionario de Python
  • Creación de un marco de datos mediante la lectura de archivos CSV

Desde arreglos NumPy

Vamos a crear un marco de datos a partir de una matriz NumPy.

Vamos a crear la matriz de datos de forma (6,4) asumiendo que en una semana determinada, cada estudiante gasta entre $0 y $100. La función randint() del módulo random de NumPy devuelve una matriz de enteros aleatorios en un intervalo determinado, [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 de pandas, puede usar el constructor DataFrame y pasar la matriz NumPy como argumento data , como se muestra:

 students_df = pd.DataFrame(data=data)

Ahora podemos llamar a la función incorporada type() para verificar el tipo de students_df . Vemos que es un objeto DataFrame .

 type(students_df) # pandas.core.frame.DataFrame
 print(students_df)
pandas-dataframe-01

Vemos que, de forma predeterminada, tenemos una indexación de rango que va de 0 a numRows - 1, y las etiquetas de las columnas son 0, 1, 2, ..., numCols -1. Sin embargo, esto reduce la legibilidad. Ayudará a agregar nombres de columna descriptivos y etiquetas de fila al marco de datos.

Vamos a crear dos listas: una para almacenar los nombres de los estudiantes y otra para almacenar las etiquetas de las columnas.

 students = ['Amy','Bob','Chris','Dave','Evelyn','Fanny'] cols = ['Week1','Week2','Week3','Week4']

Al llamar al constructor de DataFrame , puede establecer el index y las columns en las listas de etiquetas de fila y etiquetas de columna para usar, respectivamente.

 students_df = pd.DataFrame(data = data,index = students,columns = cols)

Ahora tenemos el students_df de datos 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 faltantes y los tipos de datos, puede llamar al método info() en el objeto del marco de datos.

 students_df.info()
imagen-114

De un diccionario de Python

También puede crear un marco de datos de pandas a partir de un diccionario de Python.

Aquí, data_dict es el diccionario que contiene los datos de los estudiantes:

  • Los nombres de los alumnos son las claves.
  • Cada valor es una lista de cuánto gasta cada estudiante desde la primera hasta 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 de Python, use from_dict , como se muestra a continuación. El primer argumento corresponde al diccionario que contiene los datos ( data_dict ). De forma predeterminada, las claves se utilizan como nombres de columna del marco de datos. Como nos gustaría configurar las claves como etiquetas de fila , configure orient= 'index' .

 students_df = pd.DataFrame.from_dict(data_dict,orient='index') print(students_df)
pandas-dataframe-de-dict

Para cambiar los nombres de las columnas al número de la semana, configuramos las columnas en la lista cols :

 students_df = pd.DataFrame.from_dict(data_dict,orient='index',columns=cols) print(students_df)
pandas-dataframe-03

Leer en un archivo CSV en un marco de datos de Pandas

Supongamos que los datos de los estudiantes están disponibles en un archivo CSV. Puede usar la función read_csv() para leer los datos del archivo en un marco de datos de pandas. pd.read_csv('file-path') es la sintaxis general, donde file-path es la ruta al archivo CSV. Podemos establecer el parámetro de names en la lista de nombres de columna para usar.

 students_df = pd.read_csv('/content/students.csv',names=cols)

Ahora que sabemos cómo crear un marco de datos, aprendamos cómo seleccionar filas y columnas.

Seleccionar columnas de un marco de datos de Pandas

Hay varios métodos integrados que puede usar para seleccionar filas y columnas de un marco de datos. Este tutorial repasará las formas más comunes de seleccionar columnas, filas y filas y columnas de un marco de datos.

Selección de una sola columna

Para seleccionar una sola columna, puede usar df_name[col_name] donde col_name es la cadena que indica el nombre de la columna.

Aquí, seleccionamos solo la columna 'Semana1'.

 week1_df = students_df['Week1'] print(week1_df)
una sola columna

Selección de varias columnas

Para seleccionar varias columnas del marco de datos, pase la lista de todos los nombres de columna para seleccionar.

 odd_weeks = students_df[['Week1','Week3']] print(odd_weeks)
varias columnas

Además de este método, también puede usar los iloc() y loc() para seleccionar columnas. Codificaremos un ejemplo más adelante.

Seleccionar filas de un marco de datos de Pandas

4-2

Usando el método .iloc()

Para seleccionar filas usando el método iloc() , pase los índices correspondientes a todas las filas como una lista.

En este ejemplo, seleccionamos las filas en el í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 en el índice 0 a 2, el punto final 3 se excluye de forma predeterminada.

 slice1 = students_df.iloc[0:3] print(slice1)
seleccionar filas

Usando el método .loc()

Para seleccionar las filas de un marco de datos usando el método 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 usando el rango predeterminado 0, 1, 2, hasta numRows -1, entonces usar iloc() y loc() son ambos equivalentes.

Seleccionar filas y columnas de un marco de datos de Pandas

Hasta ahora, ha aprendido a seleccionar filas o columnas de un marco de datos de pandas. Sin embargo, es posible que a veces necesite seleccionar un subconjunto de filas y columnas. Entonces, ¿cómo lo haces? Puede usar los iloc() y loc() que hemos discutido.

Por ejemplo, en el fragmento de código a continuación, seleccionamos todas las filas y columnas en el índice 2 y 3.

 subset_df1 = students_df.iloc[:,[2,3]] print(subset_df1)
subconjunto de marco de datos

El uso de start:stop crea un segmento desde el start hasta el stop , pero sin incluirlo. Entonces, cuando ignora los valores de start y finalización, cuando stop los valores de inicio y finalización, el segmento comienza al principio y se extiende hasta el final del marco de datos, seleccionando todas las filas.

Al usar el método loc() , debe pasar las etiquetas de las filas y las columnas que desea seleccionar, como se muestra:

 subset_df2 = students_df.loc[['Amy','Evelyn'],['Week1','Week3']] print(subset_df2)
subconjunto df

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í hay una revisión rápida de lo que ha aprendido en este tutorial:

  • Después de instalar pandas, puede importarlo con el alias pd . Para crear un objeto de marco de datos de pandas, puede usar el pd.DataFrame(data) , donde data se refieren a la matriz N-dimensional o un iterable que contiene los datos. Puede especificar las etiquetas de fila, índice y columna configurando los parámetros opcionales de índice y columna, respectivamente.
  • El uso pd.read_csv(path-to-the-file) lee el contenido del archivo en un marco de datos.
  • Puede llamar al método info() en el objeto del marco de datos para obtener información sobre las columnas, la cantidad de valores faltantes, los tipos de datos y el tamaño del marco de datos.
  • Para seleccionar una sola columna, use df_name[col_name] , y para seleccionar varias columnas, columna particular, df_name[[col1,col2,...,coln]] .
  • También puede seleccionar columnas y filas utilizando los métodos loc() e iloc() .
  • Mientras que el método iloc() toma el índice (o segmento de índice) de las filas y columnas para seleccionar, el método loc() toma las etiquetas de fila y columna.

Puede encontrar los ejemplos utilizados en este tutorial en este cuaderno de Colab.

A continuación, consulte esta lista de cuadernos colaborativos de ciencia de datos.