Búsqueda de sitios web

¿Cómo convertir columnas CSV a texto en Python?


Los archivos <p>CSV (valores separados por comas) se utilizan habitualmente para almacenar e intercambiar datos tabulares. Sin embargo, puede haber situaciones en las que necesite convertir los datos de las columnas CSV a formato de texto, por ejemplo, para utilizarlos como entrada para tareas de procesamiento del lenguaje natural.

Python proporciona una variedad de herramientas y bibliotecas que pueden ayudar con esta tarea. En este tutorial, exploraremos diferentes métodos para convertir columnas CSV en texto en Python, incluido el uso del módulo CSV integrado, la biblioteca Pandas y expresiones regulares. También discutiremos cómo manejar diferentes tipos de datos y los posibles problemas que pueden surgir durante el proceso de conversión.

Acercarse

  • Cargue el archivo CSV en un DataFrame de pandas usando la función read_csv().

  • Extraiga la columna deseada del DataFrame usando el operador de indexación y conviértala en una lista usando el constructor list().

  • Itere sobre los elementos de la lista y convierta cada elemento en una cadena usando la función str().

  • Une las cadenas resultantes usando un carácter o espacio específico usando el método join() para crear una única cadena de texto.

Este enfoque lee el archivo CSV con pandas, convierte la columna deseada en una lista, convierte cada elemento de la lista en una cadena y luego une las cadenas resultantes en una sola cadena de texto. Esto puede resultar útil para un mayor procesamiento o análisis de los datos del texto.

Digamos que tenemos un archivo CSV llamado inputs.csv que contiene los siguientes datos en su interior.

entradas.csv

Name, Age, Occupation
John, 32, Engineer
Jane, 28, Teacher
Bob, 45, Salesperson

Ahora consideremos el código donde seleccionaremos la segunda columna del archivo CSV y convertiremos los datos al formato de texto.

Convertir una columna específica de CSV en texto

Considere el código que se muestra a continuación.

Ejemplo

import pandas as pd

# Read the CSV file into a pandas DataFrame
df = pd.read_csv('input.csv')

# Select the second column and convert it to a text Series
text_series = df.iloc[:, 1].astype(str)

# Join the text Series into a single string
text_string = ' '.join(text_series)

# Print the resulting text string
print(text_string)

Explicación

  • Importe la biblioteca Pandas con el alias "pd". Utilice la función read_csv() de pandas para leer el archivo CSV llamado "input.csv" y guárdelo como un DataFrame de pandas en la variable "df".

  • Utilice iloc[:, 1] para seleccionar la segunda columna del DataFrame (iloc significa "ubicación de números enteros" y la notación [:, 1] selecciona todas las filas (:) y la segunda columna ( 1)).

  • Convierta la columna seleccionada en una serie de texto llamando al método astype() con el argumento str.

  • Une los elementos de la serie de texto en una sola cadena usando el método join() con un carácter de espacio como separador y almacena la cadena resultante en la variable text_string. Imprima la cadena de texto resultante usando la función print().

Para ejecutar el código anterior, primero necesitamos instalar la biblioteca Pandas en nuestra máquina, y para eso podemos usar el comando que se muestra a continuación.

pip3 install pandas

Una vez que Pandas se haya instalado correctamente, podemos ejecutar el comando que se muestra a continuación.

python3 main.py

Producción

La salida del comando anterior se muestra a continuación.

32 28 45

Convertir todas las columnas de CSV en texto

En el ejemplo anterior, exploramos cómo podemos convertir una columna específica del CSV en texto; en este ejemplo exploraremos cómo podemos convertir todos los datos de las columnas a formato de texto.

Este código utiliza la biblioteca Pandas para leer un archivo CSV en un DataFrame de pandas y luego convierte cada columna del DataFrame en una cadena de texto. Las cadenas de texto resultantes se imprimen en la consola.

Para hacer esto, el código crea una lista de Series de texto, una para cada columna del DataFrame. Luego utiliza una lista por comprensión para iterar sobre la lista de series de texto y une cada una en una sola cadena usando el método join(). Finalmente, la lista resultante de cadenas de texto se imprime en la consola mediante un bucle for.

Ejemplo

Considere el código que se muestra a continuación para el mismo archivo "inputs.csv" que teníamos arriba.

import pandas as pd

# Read the CSV file into a pandas DataFrame
df = pd.read_csv('input.csv')

# Convert all columns to text Series
text_series_list = [df[col].astype(str) for col in df.columns]

# Join each text Series into a single string
text_strings = [' '.join(text_series) for text_series in text_series_list]

# Print the resulting text strings
for text_string in text_strings:
   print(text_string)

Producción

La salida del comando anterior se muestra a continuación.

John,Jane,Bob
32,28,45
Engineer,Teacher,Salesperson

Conclusión

En conclusión, convertir columnas CSV a texto en Python es una tarea sencilla utilizando la biblioteca Pandas. Al leer el archivo CSV en un DataFrame de pandas, podemos seleccionar y convertir fácilmente columnas específicas en series de texto. Luego, usando el método join(), podemos concatenar la Serie de texto en una sola cadena para cada columna. Este método nos permite extraer los datos de texto de un archivo CSV y manipularlos según sea necesario para el análisis de texto, el procesamiento del lenguaje natural u otras aplicaciones que requieran datos de texto.

Artículos relacionados: