Pular para o conteúdo principal
InicioTutoriaisPython

Tutorial pandas read csv(): Importação de dados

A importação de dados é a primeira etapa de qualquer projeto de ciência de dados. Saiba por que os cientistas de dados atuais preferem a função read_csv() do pandas para fazer isso.
Actualizado 18 de jul. de 2024  · 9 min leer

O pandas é uma biblioteca Python amplamente utilizada para ciência de dados, análise e aprendizado de máquina que oferece uma maneira flexível e intuitiva de lidar com conjuntos de dados de todos os tamanhos. Uma das funcionalidades mais importantes do pandas são as ferramentas que ele fornece para leitura e gravação de dados. Para dados disponíveis em um formato tabular e armazenados como um arquivo CSV, você pode usar o pandas para lê-los na memória usando a função read_csv(), que retorna um dataframe do pandas. Mas há outras funcionalidades também. Por exemplo, você pode usar o pandas para realizar operações de fusão, remodelagem, união e concatenação. 

Neste artigo, você aprenderá sobre a função read_csv() e como pode alterar os parâmetros para personalizar a saída recebida após a execução da função. Também abordaremos os diferentes métodos disponíveis para um objeto de dataframe do pandas, incluindo como gravar um dataframe do pandas em um arquivo CSV e como saber mais rapidamente sobre seus dados por meio de vários métodos e atributos.  

Pratique as funções pandas com exercícios práticos do nosso curso Python Intermediário.

Observação: Confira esta pasta de trabalho do DataLab para que você possa acompanhar o código. 

Importação de um arquivo CSV usando a função read_csv()

Antes de ler um arquivo CSV em um dataframe do pandas, você deve ter alguma noção do que os dados contêm. Portanto, é recomendável que você examine o arquivo antes de tentar carregá-lo na memória: isso lhe dará mais informações sobre quais colunas são necessárias e quais podem ser descartadas.

Vamos escrever um código para importar um arquivo usando read_csv(). Em seguida, podemos falar sobre o que está acontecendo e como podemos personalizar a saída que recebemos ao ler os dados na memória.

import pandas as pd

# Read the CSV file
airbnb_data = pd.read_csv("data/listings_austin.csv")

# View the first 5 rows
airbnb_data.head()

ler os dados iniciais do pandas

Tudo o que foi feito no código acima é que temos:

  1. Você importou a biblioteca pandas para o nosso ambiente
  2. Passou o caminho do arquivo para read_csv para ler os dados na memória como um dataframe do pandas.
  3. Imprime as primeiras cinco linhas do dataframe.

Mas a função read_csv() é muito mais do que isso.

Definir uma coluna como o índice

O comportamento padrão do pandas é adicionar um índice inicial ao dataframe retornado do arquivo CSV que foi carregado na memória. No entanto, você pode especificar explicitamente qual coluna deve ser usada como índice para a função read_csv definindo o parâmetro index_col.

Observe que o valor que você atribui a index_col pode ser fornecido como um nome de cadeia de caracteres, índice de coluna ou uma sequência de nomes de cadeia de caracteres ou índices de coluna. A atribuição de uma sequência ao parâmetro resultará em um multiIndex (um agrupamento de dados em vários níveis).

Vamos ler os dados novamente e definir a coluna id como o índice.

# Setting the id column as the index
airbnb_data = pd.read_csv("data/listings_austin.csv", index_col="id")
# airbnb_data = pd.read_csv("data/listings_austing.csv", index_col=0)

# Preview first 5 rows
airbnb_data.head()

índice de id

Seleção de colunas específicas para leitura na memória

E se você quiser ler apenas colunas específicas na memória porque nem todas são importantes? Esse é um cenário comum que ocorre no mundo real. Usando a função read_csv, você pode selecionar somente as colunas necessárias depois de carregar o arquivo, mas isso significa que você deve saber de quais colunas precisa antes de carregar os dados se quiser executar essa operação na função read_csv.

Se você conhece as colunas de que precisa, está com sorte; você pode economizar tempo e memória passando um objeto do tipo lista para o parâmetro usecols da função read_csv.

# Defining the columns to read
usecols = ["id", "name", "host_id", "neighbourhood", "room_type", "price", "minimum_nights"]

# Read data with subset of columns
airbnb_data = pd.read_csv("data/listings_austin.csv", index_col="id", usecols=usecols)

# Preview first 5 rows
airbnb_data.head()

read_csv_usecols

Mal arranhamos a superfície das diferentes maneiras de personalizar a saída da função read_csv, mas aprofundar o assunto certamente seria uma sobrecarga de informações.

Recomendamos que você marque a folha de dicas de importação de dados em Python e consulte Introdução à importação de dados em Python para saber mais. Se isso for fácil demais, há também o curso interativo intermediário de importação de dados em Python.

Leitura de dados de um URL

Quando você souber como ler um arquivo CSV do armazenamento local para a memória, será muito fácil ler dados de outras fontes. Em última análise, é o mesmo processo, exceto que você não está mais passando um caminho de arquivo.

Digamos que haja dados que você queira de uma página da Web específica; como você os leria na memória?

Usaremos o conjunto de dados Iris do repositório da UCI como exemplo:

# Webpage URL
url = "https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data"

# Define the column names
col_names = ["sepal_length_in_cm",
            "sepal_width_in_cm",
            "petal_length_in_cm",
            "petal_width_in_cm",
            "class"]

# Read data from URL
iris_data = pd.read_csv(url, names=col_names)

iris_data.head() 

conjunto de dados da íris

Voila!

Você deve ter notado que atribuímos uma lista de cadeias de caracteres ao parâmetro names na função read_csv. Isso serve apenas para que você possa renomear os cabeçalhos das colunas enquanto lê os dados na memória.

Métodos e atributos da estrutura DataFrame

O objeto mais comum na biblioteca pandas é, de longe, o objeto dataframe. É uma estrutura de dados rotulada bidimensional que consiste em linhas e colunas que podem ser de diferentes tipos de dados (ou seja, flutuantes, numéricos, categóricos etc.).

Conceitualmente, você pode pensar em um dataframe do pandas como uma planilha, uma tabela SQL ou um dicionário de objetos de série - o que for mais familiar para você. O legal do dataframe do pandas é que ele vem com muitos métodos que facilitam que você se familiarize com seus dados o mais rápido possível.

Você já viu um desses métodos: iris_data.head() Você já viu um desses métodos: o método "n", que mostra as primeiras n (o padrão é 5) linhas. O método "oposto" de head() é tail(), que mostra as últimas n (5 por padrão) linhas do objeto de dataframe. Por exemplo:

iris_data.tail()

cabeça

Você pode descobrir rapidamente os nomes das colunas usando o atributo columns em seu objeto de dataframe:

# Discover the column names
iris_data.columns

"""
Index(['sepal_length_in_cm', 'sepal_width_in_cm', 'petal_length_in_cm',
      'petal_width_in_cm', 'class'],
      dtype='object')
"""

Outro método importante que você pode usar em seu objeto de dataframe é info(). Esse método imprime um resumo conciso do dataframe, incluindo informações sobre o índice, tipos de dados, colunas, valores não nulos e uso de memória.

# Get summary information of the dataframe
iris_data.info()

"""
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 150 entries, 0 to 149
Data columns (total 5 columns):
#   Column              Non-Null Count  Dtype 
---  ------              --------------  ----- 
0   sepal_length_in_cm  150 non-null    float64
1   sepal_width_in_cm   150 non-null    float64
2   petal_length_in_cm  150 non-null    float64
3   petal_width_in_cm   150 non-null    float64
4   class               150 non-null    object
dtypes: float64(4), object(1)
memory usage: 6.0+ KB
"""

DataFrame.describe() gera estatísticas descritivas, incluindo aquelas que resumem a tendência central, a dispersão e a forma da distribuição do conjunto de dados. Se os seus dados tiverem valores ausentes, não se preocupe; eles não serão incluídos nas estatísticas descritivas.

Vamos chamar o método describe no conjunto de dados Iris:

# Get descriptive statistics
iris_data.describe()

descrever

Exportação do DataFrame para um arquivo CSV

Outro método disponível para os objetos de dataframe do pandas é to_csv(). Quando você tiver limpado e pré-processado os dados, a próxima etapa poderá ser exportar o dataframe para um arquivo - isso é bastante simples:

# Export the file to the current working directory
iris_data.to_csv("cleaned_iris_data.csv")

Ao executar esse código, você criará um CSV no diretório de trabalho atual chamado cleaned_iris_data.csv.

Mas e se você quiser usar um delimitador diferente para marcar o início e o fim de uma unidade de dados ou se quiser especificar como os valores ausentes devem ser representados? Talvez você não queira que os cabeçalhos sejam exportados para o arquivo.

Bem, você pode ajustar os parâmetros do método to_csv() para atender aos requisitos dos dados que deseja exportar.

Vamos dar uma olhada em alguns exemplos de como você pode ajustar a saída do to_csv():

  • Exportar dados para o diretório de trabalho atual, mas usando um delimitador de tabulação.
# Change the delimiter to a tab
iris_data.to_csv("tab_seperated_iris_data.csv", sep="\t")
  • Exportação de dados sem o índice
# Export data without the index
iris_data.to_csv("tab_seperated_iris_data.csv", sep="\t")

# If you get UnicodeEncodeError use this... 
# iris_data.to_csv("tab_seperated_iris_data.csv", sep="\t", index=False, encoding='utf-8')
  • Altere o nome dos valores ausentes (o padrão é "")
# Replace missing values with "Unknown"
iris_data.to_csv("tab_seperated_iris_data.csv", sep="\t", na_rep="Unknown")
  • Exportar dataframe para um arquivo sem cabeçalhos (nomes de colunas)
# Do not include headers when exporting the data
iris_data.to_csv("tab_seperated_iris_data.csv", sep="\t", na_rep="Unknown", header=False)

Considerações finais

Vamos recapitular o que abordamos neste tutorial: você aprendeu como fazer:

  • Importe um arquivo CSV usando a função read_csv() da biblioteca pandas.
  • Defina um índice de coluna enquanto você lê seus dados na memória.
  • Especifique as colunas em seus dados que você deseja que a função read_csv() retorne.
  • Leia dados de um URL com o comando pandas.read_csv()
  • Obtenha rapidamente insights sobre seus dados usando métodos e atributos em seu objeto de dataframe.
  • Exportar um objeto de dataframe para um arquivo CSV
  • Personalize a saída do arquivo de exportação do método to_csv().

Neste tutorial, nos concentramos apenas na importação e exportação de dados a partir da perspectiva de um arquivo CSV; agora você tem uma boa noção da utilidade do pandas ao importar e exportar arquivos CSV. O CSV é um dos formatos mais comuns de armazenamento de dados, mas não é o único. Há vários outros formatos de arquivo usados na ciência de dados, como parquet, JSON e Excel.

Muitos conjuntos de dados úteis e de alta qualidade estão hospedados na Web, que você pode acessar por meio de APIs, por exemplo. Se você quiser entender como lidar com o carregamento de dados em Python com mais detalhes, o curso Introdução à importação de dados em Python do DataCamp ensinará a você todas as práticas recomendadas.

Há também tutoriais sobre como importar dados JSON e HTML para o pandas e um guia definitivo para iniciantes sobre o pandas. Não deixe de dar uma olhada neles para se aprofundar na estrutura do pandas.

Temas

Saiba mais sobre Python e pandas

Course

Pandas Joins for Spreadsheet Users

4 hr
3.7K
Learn how to effectively and efficiently join datasets in tabular format using the Python Pandas library.
See DetailsRight Arrow
Start Course
Ver maisRight Arrow
Relacionado

blog

Uma introdução aos polares: Ferramenta Python para análise de dados em grande escala

Explore o Polars, uma biblioteca Python robusta para manipulação e análise de dados de alto desempenho. Saiba mais sobre seus recursos, suas vantagens em relação ao pandas e como ele pode revolucionar seus processos de análise de dados.
Moez Ali's photo

Moez Ali

9 min

tutorial

Pandas Tutorial: DataFrames em Python

Explore a análise de dados com Python. Os DataFrames do Pandas facilitam a manipulação de seus dados, desde a seleção ou substituição de colunas e índices até a remodelagem dos dados.
Karlijn Willems's photo

Karlijn Willems

20 min

tutorial

Tutorial do Python Excel: O guia definitivo

Saiba como ler e importar arquivos do Excel em Python, gravar dados nessas planilhas e encontrar os melhores pacotes para fazer isso.
Natassha Selvaraj's photo

Natassha Selvaraj

30 min

tutorial

Tutorial do Python pandas: O guia definitivo para iniciantes

Você está pronto para começar sua jornada com os pandas? Aqui está um guia passo a passo sobre como você pode começar.
Vidhi Chugh's photo

Vidhi Chugh

15 min

tutorial

Tutorial de seleção de colunas em Python

Use o Python Pandas e selecione colunas de DataFrames. Siga nosso tutorial com exemplos de código e aprenda diferentes maneiras de selecionar seus dados hoje mesmo!
DataCamp Team's photo

DataCamp Team

7 min

tutorial

Tutorial de junção de DataFrames no pandas

Neste tutorial, você aprenderá várias maneiras pelas quais vários DataFrames podem ser mesclados em python usando a biblioteca Pandas.
DataCamp Team's photo

DataCamp Team

19 min

See MoreSee More