Crear un marco de datos usando archivos CSV
En este documento técnico, exploraremos el proceso de creación de un marco de datos utilizando archivos CSV en Python. Específicamente, cubriremos las siguientes subsecciones:
Introducción a los marcos de datos y archivos CSV
Leer archivos CSV en marcos de datos
Explorando marcos de datos
Manipulación de marcos de datos
-
Escribir marcos de datos en archivos CSV
A lo largo de este documento, utilizaremos ejemplos del mundo real y proporcionaremos fragmentos de código para ilustrar cada subsección.
¿Qué son los marcos de datos y los archivos CSV?
Antes de profundizar en los detalles de la creación de un marco de datos a partir de un archivo CSV, primero definamos qué es un marco de datos y qué es un archivo CSV.
Un marco de datos es una estructura de datos tabular bidimensional, de tamaño variable, con columnas de tipos potencialmente diferentes. Es similar a una hoja de cálculo o una tabla SQL y se usa comúnmente para almacenar y manipular datos en Python.
Un archivo CSV (valores separados por comas), por otro lado, es un archivo de texto sin formato que almacena datos en formato tabular, donde cada fila representa un registro y cada columna representa un campo. Los archivos CSV son una forma común de almacenar datos porque son fáciles de leer y escribir y se pueden abrir en muchas aplicaciones diferentes, incluidas Excel y Python.
Leer archivos CSV en marcos de datos
El primer paso para crear un marco de datos a partir de un archivo CSV es leer el archivo en Python. Esto se puede hacer usando la biblioteca `pandas`, que proporciona una forma sencilla de leer archivos CSV como marcos de datos.
Sintaxis
import pandas as pd
df = pd.read_csv('filename.csv')
En este ejemplo, primero importamos la biblioteca `pandas` y luego leemos un archivo CSV llamado `filename.csv` usando la función `pd.read_csv`. El objeto resultante, `df`, es un marco de datos que contiene los datos del archivo CSV.
Vale la pena señalar que la función `read_csv` tiene muchos parámetros opcionales que se pueden usar para personalizar cómo se lee el archivo CSV. Por ejemplo, puede especificar el delimitador utilizado en el archivo (en caso de que no sea una coma), la codificación y si el archivo contiene o no una fila de encabezado.
Explorando marcos de datos
Una vez que hayamos leído un archivo CSV como marco de datos, podemos comenzar a explorar y analizar los datos. Algunas operaciones comunes incluyen:
Ver las primeras filas del marco de datos usando la función `head`
-
Verificar la forma del marco de datos (número de filas y columnas) usando el atributo "forma"
Ver estadísticas resumidas del marco de datos usando la función "describir"
Seleccionar un subconjunto de columnas o filas mediante indexación y división
Echemos un vistazo a un ejemplo. Supongamos que tenemos un archivo CSV que contiene información sobre películas, incluido el título, año, género y tiempo de ejecución. Podemos leer el archivo como un marco de datos y luego ver las primeras filas usando la función `head`
Sintaxis
df = pd.read_csv('movies.csv')
print(df.head())
Esto generará las primeras 5 filas del marco de datos.
Producción
Title Year Genre Runtime
0 The Shawshank Redemption 1994 Drama 142
1 The Godfather 1972 Crime 175
2 The Godfather: Part II 1974 Crime 202
3 The Dark Knight 2008 Action 152
4 12 Angry Men 1957 Drama 96
También podemos verificar la forma del marco de datos.
print(df.shape)
Para ver las estadísticas resumidas del marco de datos, podemos usar la función `describir`:
print(df.describe())
Esto generará lo siguiente:
Producción
Year Runtime
count 250.000000 250.000000
mean 1984.356000 118.840000
std 24.012321 23.118059
min 1921.000000 69.000000
25% 1964.000000 100.000000
50% 1995.000000 116.000000
75% 2003.000000 131.000000
max 2016.000000 229.000000
Finalmente, podemos seleccionar un subconjunto de columnas o filas mediante indexación y división. Por ejemplo, para seleccionar solo las columnas de título y género:
Ejemplo
subset = df[['Title', 'Genre']]
print(subset.head())
Producción
Title Genre
0 The Shawshank Redemption Drama
1 The Godfather Crime
2 The Godfather: Part II Crime
3 The Dark Knight Action
4 12 Angry Men Drama
Manipulación de marcos de datos
Más allá de simplemente explorar los datos, es posible que deseemos manipularlos de varias maneras, como ordenarlos, filtrarlos, fusionarlos y girarlos. En esta subsección, cubriremos algunas operaciones comunes de manipulación de marcos de datos utilizando ejemplos del mundo real.
Clasificación
Para ordenar un marco de datos por una o más columnas, podemos usar la función `sort_values`. Por ejemplo, para ordenar el marco de datos de nuestra película por año en orden descendente:
Ejemplo
sorted_df = df.sort_values('Year', ascending=False)
print(sorted_df.head())
Esto generará las primeras 5 filas del marco de datos, ordenadas por año en orden descendente:
Producción
Title Year Genre Runtime
15 Logan 2017 Action 137
127 The Revenant 2015 Adventure 156
117 Whiplash 2014 Drama 107
111 X-Men: Days of Future Past 2014 Action 132
95 The Lego Movie 2014 Animation 100
Filtración
Para filtrar un marco de datos en función de una o más condiciones, podemos utilizar la indexación booleana. Por ejemplo, para seleccionar solo las películas de acción en nuestro marco de datos de película:
Ejemplo
subset = df[df['Genre'] == 'Action']
print(subset.head())
Esto generará las primeras 5 películas de acción en el marco de datos.
Producción
Title Year Genre Runtime
3 The Dark Knight 2008 Action 152
6 The Silence of the Lambs 1991 Action 118
7 Inception 2010 Action 148
16 Terminator 2: Judgment Day 1991 Action 137
20 Forrest Gump 1994 Action 142
Fusionando
Para combinar dos o más marcos de datos en un solo marco de datos, podemos usar la función "fusionar". Por ejemplo, supongamos que tenemos un segundo archivo CSV que contiene las calificaciones de cada película en nuestro marco de datos original. Podemos leer este archivo como un marco de datos separado y luego fusionarlo con nuestro marco de datos original según una columna común (en este caso, el título de la película):
Ejemplo
ratings_df = pd.read_csv('ratings.csv')
merged_df = pd.merge(df, ratings_df, on='Title')
print(merged_df.head())
Esto generará el marco de datos combinado, que contiene tanto la información de la película como la información de calificaciones.
Producción
Title Year Genre Runtime Rating
0 The Shawshank Redemption 1994 Drama 142 9.3
1 The Godfather 1972 Crime 175 9.2
2 The Godfather: Part II 1974 Crime 202 9.0
3 The Dark Knight 2008 Action 152 9.0
4 12 Angry Men 1957 Drama 96 8.9
Pivotando
Para pivotar un marco de datos, podemos usar la función `pivot_table`. Por ejemplo, supongamos que queremos ver el tiempo de ejecución promedio de las películas por género. Podemos pivotar el marco de datos de nuestra película original:
Ejemplo
pivot_df = pd.pivot_table(df, values='Runtime', columns='Genre', aggfunc='mean')
print(pivot_df)
Producción
Esto generará una tabla que muestra el tiempo de ejecución promedio de las películas por género.
Genre Action Adventure Animation Comedy Crime \
Runtime 126.304348 118.054054 98.250000 107.111111 128.666667
Genre Documentary Drama Family Fantasy Film-Noir \
Runtime 85.333333 126.539326 111.666667 126.300000 105.000000
Genre History Horror Music Musical Mystery \
Runtime 123.375 108.204545 131.133333 121.714286 114.200000
Genre Romance Sci-Fi Sport Thriller War Western
Runtime 116.6 121.266667 129.428571 120.046875 134.125 117.833333
Escribir marcos de datos en archivos CSV
Finalmente, después de haber manipulado y analizado nuestro marco de datos, es posible que queramos volver a escribirlo en un archivo CSV para usarlo en el futuro. Esto se puede hacer usando la función `to_csv`.
df.to_csv('new_file.csv', index=False)
En este ejemplo, escribimos nuestro marco de datos en un nuevo archivo CSV llamado `new_file.csv`, con `index=False` para excluir la columna de índice del archivo.
Conclusión
En este documento técnico, cubrimos el proceso de creación de un marco de datos utilizando archivos CSV en Python. Comenzamos definiendo qué son los marcos de datos y los archivos CSV, y luego exploramos cómo leer archivos CSV en marcos de datos, cómo explorar y manipular marcos de datos y cómo escribir marcos de datos en archivos CSV. Utilizando ejemplos del mundo real y fragmentos de código, ilustramos cada subsección en detalle. Al dominar las técnicas cubiertas en este documento, estará en camino de dominar el trabajo con marcos de datos y archivos CSV en Python.