Antes de iniciar qualquer outra etapa em um projeto de dados, é necessário realizar primeiro o carregamento da base para o ambiente que estamos trabalhando. Portanto, neste artigo iremos destacar os principais métodos de importação da base com o pandas.
A sintaxe de leitura de arquivos no pandas é bastante intuitivo, sendo que o início de suas funções começam com "read_" e o complemento virá da extensão do arquivo a ser carregado.
CSV (comma separated values)
O arquivo ".csv" é um dos formatos mais comuns que se encontra na internet, para realizar essa importação, basta utilizar a função "read_csv", passar o caminho do arquivo e, para o contexto brasileiro, necessitamos nos atentar a 3 parâmetros em particular:
- sep: O tipo de separador de colunas -> default = "," (apesar do padrão ser a vírgula, podemos encontrar outros tipos de separadores, como ";" ou "|" etc.)
- decimal: O tipo de separador de casas decimais -> default = "." (nos EUA o padrão ".", enquanto no Brasil é a ",")
- encoding: Codificação de caracteres (cada país possui uma lista de caracteres que podem não existir em outros países, como o "ç" que não existe na língua inglesa)
pd.read_csv(
"https://raw.githubusercontent.com/owid/covid-19-data/master/public/data/latest/owid-covid-latest.csv",
decimal=",",
encoding="utf-8"
)
Excel
Outra forma de importarmos uma base é quando se encontra no formato de arquivos excel ".xlsx", nesse caso iremos usar a função "read_excel" do pandas.
Para esse tipo de formato, também devemos nos atentar aos seguintes parâmetros:
- decimal: O tipo de separador de casas decimais -> default = "."- skiprows: Quantidade de linhas que devemos pular no arquivo excel (pode acontecer de as colunas iniciarem a partir da 5 linha no excel, nesse caso iremos configurar skiprows=4)
- sheet_name: Especificar o nome de qual sheet o pandas deverá ler (em caso de mais de um sheet no arquivo excel)
pd.read_excel(
"https://github.com/FBosler/Medium-Data-Extraction/blob/master/invoices.xlsx?raw=true",
skiprows=2,
sheet_name="Sheet 2"
)
Parquet
Este formato é comum de ser visto em cenários de Big Data, pois é uma extensão que consegue reduzir drásticamente o tamanho do arquivo original para que seja viável de se manipular no pandas.
Podemos acessar subdivisões da base original através de um filtro, por exemplo:
pd.read_parquet("file.parquet", filters=[("ANO", "=", 2020)])
Não irei aprofundar, pois em outro post irei trazer mais detalhes deste tipo de extensão.
ZIP
É bastante comum os arquivos originais estarem em pastas compactadas em formato ".zip" ou alguma outra extensão, nesse caso devemos utilizar outra biblioteca chamada ZipFile que irá nos ajudar a descompactar para poder aplicar os métodos do pandas para carregamento da base.
with zipfile.ZipFile(f"data/file.zip") as z:
df = pd.read_csv(
z.open("file.csv"),
sep="|",
encoding="latin-1",
decimal="."
)
Outro caso comum é de acessar arquivos zipados diretamente da web sem precisar estar armazenado no seu HD, porém o pandas não vai conseguir lê-lo diretamente, para realizar essa importação, devemos utilizar mais 4 bibliotecas, sendo elas:
- request: Realiza a requisição de conteúdos diretamente na web
- io: Permite criar buffers para armazenar dados temporariamente na memória antes de serem escritos em um arquivo ou outra fonte de saída.
- ZipFile: Realizar a descompactação do arquivo.
- pandas: Para realizar o carregamento da base.
resposta = requests.get("https://download.inep.gov.br/dados_abertos/microdados_censo_escolar_2022.zip")
buffer = BytesIO(initial_bytes=resposta.content)
with zipfile.ZipFile(buffer) as z:
df = pd.read_csv(
z.open("/Microdados do Censo Escolar da Educação Básica 2022/dados/microdados_ed_basica_2022.csv"),
sep="|",
encoding="latin-1",
decimal=",")
Diretamente no pandas
Por fim, porém não menos importante, podemos criar dataframes diretamente do pandas, para isso podemos passar:
- data: Os dados que irão compor o dataframe
- columns: Os nomes das colunas
- index: Se for preciso personalizar o índice do dataframe
pd.DataFrame(
data=np.random.randint(low=0, high=10, size=(5, 5)),
columns=["Matemática", "Português", "História", "Geografia", "Física"],
index=["Pedro", "Maria", "João", "Mateus", "Lucas"]
)
Esses são os principais métodos que iremos encontrar no dia a dia ao carregar uma base para analisar, porém lembre-se de consultar a documentação do pandas sempre que estiver com dúvidas de alguma função.
O mais importante, a prática irá te levar a experiência com os diversos tipos de importação e seus respectivos métodos.
Top comments (0)