Como converter colunas CSV em texto em Python?
Arquivos <p>CSV (valores separados por vírgula) são comumente usados para armazenar e trocar dados tabulares. No entanto, pode haver situações em que seja necessário converter os dados em colunas CSV para formato de texto, por exemplo, para usá-los como entrada para tarefas de processamento de linguagem natural.
Python fornece uma variedade de ferramentas e bibliotecas que podem ajudar nessa tarefa. Neste tutorial, exploraremos diferentes métodos para converter colunas CSV em texto em Python, incluindo o uso do módulo CSV integrado, biblioteca Pandas e expressões regulares. Também discutiremos como lidar com diferentes tipos de dados e possíveis problemas que podem surgir durante o processo de conversão.
Abordagem
Carregue o arquivo CSV em um DataFrame do pandas usando a função read_csv().
Extraia a coluna desejada do DataFrame usando o operador de indexação e converta-a em uma lista usando o construtor list().
Itere sobre os elementos da lista e converta cada elemento em uma string usando a função str().
-
Junte as strings resultantes usando um caractere ou espaço específico usando o método join() para criar uma única string de texto.
Essa abordagem lê o arquivo CSV com pandas, converte a coluna desejada em uma lista, converte cada elemento da lista em uma string e, em seguida, une as strings resultantes em uma única string de texto. Isto pode ser útil para processamento ou análise adicional dos dados de texto.
Digamos que temos um arquivo CSV chamado inputs.csv que contém os seguintes dados.
entradas.csv
Name, Age, Occupation
John, 32, Engineer
Jane, 28, Teacher
Bob, 45, Salesperson
Agora vamos considerar o código onde selecionaremos a segunda coluna do arquivo CSV e converteremos os dados para o formato de texto.
Convertendo coluna específica de CSV em texto
Considere o código mostrado abaixo.
Exemplo
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)
Explicação
Importe a biblioteca Pandas com o alias “pd”. Use a função read_csv() do pandas para ler o arquivo CSV chamado "input.csv" e armazene-o como um DataFrame do pandas na variável "df".
Use iloc[:, 1] para selecionar a segunda coluna do DataFrame (iloc significa "localização inteira", e a notação [:, 1] seleciona todas as linhas (:) e a segunda coluna ( 1)).
Converta a coluna selecionada em uma série de texto chamando o método astype() com o argumento str.
Junte os elementos da série de texto em uma única string usando o método join() com um caractere de espaço como separador e armazene a string resultante na variável text_string. Imprima a string de texto resultante usando a função print().
Para executar o código acima, primeiro precisamos instalar a biblioteca Pandas em nossa máquina, e para isso podemos utilizar o comando mostrado abaixo
pip3 install pandas
Assim que o Pandas for instalado com sucesso, podemos executar o comando mostrado abaixo.
python3 main.py
Saída
A saída do comando acima é mostrada abaixo.
32 28 45
Convertendo todas as colunas de CSV em texto
No exemplo anterior, exploramos como podemos converter uma coluna específica do CSV em texto, neste exemplo exploraremos como podemos converter todos os dados das colunas em formato de texto.
Este código usa a biblioteca Pandas para ler um arquivo CSV em um DataFrame do pandas e, em seguida, converte cada coluna do DataFrame em uma string de texto. As sequências de texto resultantes são impressas no console.
Para fazer isso, o código cria uma lista de séries de texto, uma para cada coluna do DataFrame. Em seguida, ele usa uma compreensão de lista para iterar sobre a lista de séries de texto e une cada uma delas em uma única string usando o método join(). Finalmente, a lista resultante de strings de texto é impressa no console usando um loop for.
Exemplo
Considere o código mostrado abaixo para o mesmo arquivo “inputs.csv” que tínhamos acima.
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)
Saída
A saída do comando acima é mostrada abaixo.
John,Jane,Bob
32,28,45
Engineer,Teacher,Salesperson
Conclusão
Concluindo, converter colunas CSV em texto em Python é uma tarefa simples usando a biblioteca Pandas. Ao ler o arquivo CSV em um DataFrame do pandas, podemos facilmente selecionar e converter colunas específicas em séries de texto. Então, usando o método join(), podemos concatenar a série de texto em uma única string para cada coluna. Este método nos permite extrair os dados de texto de um arquivo CSV e manipulá-los conforme necessário para análise de texto, processamento de linguagem natural ou outras aplicações que requerem dados de texto