Búsqueda de sitios web

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.

Artículos relacionados: