Skip to content

Latest commit

 

History

History
244 lines (182 loc) · 5.12 KB

cp2.md

File metadata and controls

244 lines (182 loc) · 5.12 KB
jupytext kernelspec
formats text_representation
md:myst
extension format_name format_version jupytext_version
.md
myst
0.13
1.11.5
display_name language name
Python 3
python
python3

Python para Ciência de Dados

Manipulação de Dados Tabulares com Pandas - Funções Básicas

:tags: [remove-output]
import pandas as pd
cidades = pd.DataFrame(
    [
        ['Paraná', 'Londrina', 575377, 1356.00],
        ['São Paulo', 'São Carlos', 254484, 1508.00],
        ['Santa Catarina', 'Florianópolis', 508826, 1798.00],
        ['Paraná', 'Curitiba', 1963726, 2293.00],
        ['São Paulo', 'Campinas', 1223237, 1710.00]
    ], columns=['Estado', 'Cidade', 'Habitantes', 'Salário-Médio'])

cidades
:tags: [remove-output]
df = pd.read_csv('qualidade_vinho.csv', sep=',', header=0)
df.head(2)
cidades.head(2) # Retorna um novo dataframe com as n primeiras amostras
cidades.tail(2) # Retorna um novo dataframe com as n últimas amostras
cidades.shape # Retorna uma tupla com o número de linhas e colunas
cidades.info() # Retorna vazio e imprime na tela as informações gerais do dataframe
cidades.columns # Retorna uma lista com o nome de todas as colunas
cidades['Salário-Médio'].describe() # Retorna um objeto DataFrame com as medidas estatísticas para cada coluna

Tipos de Dados com Pandas

cidades.dtypes
cidades.info()
cidades['Habitantes'] = cidades['Habitantes'].astype('float64')
cidades.dtypes
cidades['Data'] = ['3-8-2021', '3-9-2021', '3-10-2021', '3-11-2021', '3-12-2021']

cidades['Data'] = pd.to_datetime(cidades['Data'], format='%d-%m-%Y') # Dia, Mês, Ano

cidades
cidades['Data'] = cidades['Data'].dt.strftime('%d-%m-%Y') # Dia, Mês, Ano
cidades # Novo Formato

Renomeando Colunas

cidades.rename(columns={'Habitantes': 'N Habitantes', 'Data': 'Data - Censo'}, inplace=True)
cidades

Selecionando Linhas e Colunas

cidadesHab = cidades[['N Habitantes', 'Salário-Médio']] # Seleciona as duas colunas com os nomes especificados
cidadesHab
cidades.loc[[1, 2]] # Seleciona as duas linhas com os nomes especificados (note que o "rótulo" de cada linha está presente na forma de números inteiros)
cidades.iloc[1:3] # Seleciona as linhas do dataframe original, referentes ao índice determinado
cidades.iloc[:, 0:2] # Seleciona todas as linhas e as duas primeiras colunas do dataframe original
cidades.iloc[1:3, :3] # Seleciona as duas primeiras linhas e as três primeiras colunas
cidades.iloc[:, [1, 3, 0, 2]] # Seleciona todas as linhas e as colunas determinadas

Adicionando e Removendo Colunas

cidades.insert(2, 'Sigla', ['PR', 'SP', 'SC', 'PR', 'SP']) # Adiciona novos dados no índice dois
cidades.insert(2, 'Sigla-Repetida', cidades['Sigla']) # Adiciona uma coluna repetida "Sigla"
cidades
cidades.pop('Sigla-Repetida')

# ou

cidades = cidades.drop(['Sigla-Repetida'], axis=1)
cidades

Operações Básicas - Consultas

cidades.query('`Salário-Médio` > 1400.0')
cidades.query('Estado == "São Paulo"')
cidades.query('`N Habitantes` > 500000 and `N Habitantes` < 1300000')

Operações Básicas - Ordenação

cidades.sort_values(by='Cidade', inplace=True)
cidades
cidades.sort_values(by='Salário-Médio', inplace=True)
cidades

Operações Básicas - Combinando DataFrames

cidades_salarios = pd.DataFrame(
    [
        ['Paraná', 'Londrina', 1356.00],
        ['São Paulo', 'São Carlos', 1508.00],
        ['Santa Catarina', 'Florianópolis', 1798.00],
        ['Paraná', 'Curitiba', 2293.00],
        ['São Paulo', 'Campinas', 1710.00]
    ], columns=['Estado', 'Cidade', 'Salário-Médio'])

cidades_salarios
cidades_pop = pd.DataFrame(
    [
        ['Londrina', 575377],
        ['São Carlos', 254484],
        ['Florianópolis', 508826],
        ['Curitiba', 1963726],
        ['Campinas', 1223237]
    ], columns=['Cidade', 'Habitantes'])

cidades_pop
pd.merge(left=cidades_salarios, right=cidades_pop, on="Cidade")
pd.merge(left=cidades_salarios, right=cidades_pop, on="Cidade", how="outer")
cidades_df1 = pd.DataFrame(
    [
        ['Londrina', 575377],
        ['São Carlos', 254484],
        ['Florianópolis', 508826],
    ], columns=['Cidade', 'Habitantes'])

cidades_df1
cidades_df2 = pd.DataFrame(
    [
        ['Curitiba', 1963726],
        ['Campinas', 1223237]
    ], columns=['Cidade', 'Habitantes'])

cidades_df2
pd.concat([cidades_df1, cidades_df2], ignore_index=True)

Operações Básicas - Salvando DataFrames

cidades.to_csv("my_df.csv")
cidades.to_html("my_df.html")
cidades.to_json("my_df.json")