TL; DR: Neste Artigo Vamos демонстратор Como Acessar Os Dados do BD+ через консультации SQL Pelo Pacote Da Base Dos Dados Em Python. Em Seguida Vamos Continuar As Análises Do Post Базовый Dos Dados Python 101 , Sobre a Popularidade de nomes nos estados brasileiros, com o conteúdo apatadado сделать Семинар “Бренкандо Ком Дадос да Bd+ Em Питон “ .
import pandas as pd import geopandas as gpd import basedosdados as bd import matplotlib.pyplot as plt
Consultas SQL NA BD+
Já vimos em um artigo передняя Que podemos acessar a bd+ pela Фунсао read_table
, Capaz de Carregar Uma Tabela Por Vez. Hoje Vamos Acessar A Bd+ Por Meio de Consultas SQL, com A Funcáo read_sql
. Recomendamos essa opção, por ontar com toda abacidade da linguagem sql, acesso amplo ao acervo da bd+ e retorno em formato dataframe. Алем Д.О. Мейс, Суа Синтакс Эналога А read_table
. Isto é, precisamos apenas fornecer uma consulta válida e um id de projeto do Google Cloud.
Seguir ilustramos uma consulta de dados da tabela de nomes brasileiros do ibge (2010) Cruzada com diretórios brasileiros, com fim de obter o nome mais popular de cada estado. Соблюдайте Que Precisamos fornecer o nome do datalake (basedosdados), набор данных (br_bd_diretorios_brasil) e tabela (municipio).
df = bd.read_sql( ''' SELECT estado.uf AS state, estado.municipio AS town, nomes.nome AS name, nomes.qtde_nascimentos_ate_2010 AS freq FROM basedosdados.br_ibge_nomes_brasil.quantidade_municipio_nome_2010 AS nomes INNER JOIN basedosdados.br_bd_diretorios_brasil.municipio AS estado ON nomes.id_municipio = estado.id_municipio ''', billing_project_id='basedosdados42' )
Após Lermos Os Dados Realizamos UM Pré-Processamento. Neste Processo, elmiNamos nomes únicos ou erros em municípios, como: Awo, йоране E Zilneide. POR FIM, TAMBém CALCULAMOS A FUTENCIA DOS NOMES NOS ESTADOS PO 100.000 Пессоас.
df = df[df.duplicated('name', keep=False)] # seleciona nomes que aparecem mais de uma vez total_by_state = df.groupby('state').freq.sum() # agrupa o total por estado df = df.merge(total_by_state, on='state', suffixes=('', '_total_by_state')) # une os dados com total por estado df['freq_per_100k'] = 100_000 * df.freq / df.freq_total_by_state # cria o total por estado por 100k pessoas
Em Que Estado Fred é Mais Famoso?
Nossa primeira Questão de Análise é Descobrir Como está gripibuída a futencia de um nome nos estados brasileiros. EM Offic Gostaríamos de Saber Em Qual Estado Fred, Nome de um de nossos desenvolvolvedores, é o nome mais famoso. Entãao vamos contar a futencia do nome fred por 100.000 Pessoas em Cada Estado, E em Seguida Представитель Este Dado Com Mapa Com Gradiente de Cores (Coroplético).
Para Isso, PreviaMente Instalamos A Biblioteca Geopandas
Пара вспомогательный o desenho do mapa e manaualmente criamos um mapeamento entre o nome de um estado e sua abreviato nos dados geográficos State2abbr
Анкет
state2abbr = { 'Acre': 'BR.AC', 'Alagoas': 'BR.AL', 'Amapá': 'BR.AP', 'Amazonas': 'BR.AM', 'Bahia': 'BR.BA', 'Ceará': 'BR.CE', 'Distrito Federal': 'BR.DF', 'Espírito Santo': 'BR.ES', 'Goiás': 'BR.GO', 'Maranhão': 'BR.MA', 'Mato Grosso': 'BR.MT', 'Mato Grosso do Sul': 'BR.MS', 'Minas Gerais': 'BR.MG', 'Pará': 'BR.PA', 'Paraíba': 'BR.PB', 'Paraná': 'BR.PR', 'Pernambuco': 'BR.PE', 'Piauí': 'BR.PI', 'Rio de Janeiro': 'BR.RJ', 'Rio Grande do Norte': 'BR.RN', 'Rio Grande do Sul': 'BR.RS', 'Rondônia': 'BR.RO', 'Roraima': 'BR.RR', 'Santa Catarina': 'BR.SC', 'São Paulo': 'BR.SP', 'Sergipe': 'BR.SE', 'Tocantins': 'BR.TO', }
Em Seguida Criamos A Funcáo Visualize_name
que filtra os dados do nome, agrupa a futencia por estados e desenha o mapa.
def visualize_name(df, name): name_df = df.query(f'name == "{name}"') # filtra o nome escolhido name_df = name_df.groupby('state', as_index=False).sum() # agrupa pelos estados name_df.state = name_df.state.apply(lambda x: state2abbr[x]) # abrevia os estados name_df = name_df.rename(columns={'state': 'HASC_1'}) # renomeia a coluna fig, ax = plt.subplots(1, 1) br_map = gpd.read_file('./shapes/gadm36_BRA_1.shp') # lê o mapa br_map = br_map.merge(name_df, on='HASC_1', how='outer') # une o mapa com os dados br_map.plot(column='freq_per_100k', ax=ax, legend=True) # desenha o gráfico visualize_name(df, 'Fred')
Interessante Notar Como Fred Parece um nome comum em estados como amazonas e roraima, devido a população gntes estados ser menor quando comparada com sãao paulo.
QUAIS SãO OS NOMES MAIS Регионаб?
Essa é Uma boa pergunta a se fazer: Qual nome é mais exclusivo de uma região? OU Seja, é Mais provável de ser incontrado Numa detrinada regiao e niona em wootros estados.
Vamos solucionar esta dúvida agrupando a futencia de nomes dos municípios em estados. Em Seguida excluímos omes Que aparecem apenas em um estado. Para entãao Calcular Mediana e desvio padrão das futencias de cada nome distinto, e por fim rablizamos как futencias de nomes.
state_df = df.groupby(['name', 'state'], as_index=False).sum() # soma as frequências de municípios state_df = state_df[state_df.duplicated('name', keep=False)] # elimina nomes não duplicados median = state_df.groupby('name', as_index=False).freq_per_100k.median() state_df = state_df.merge(median, on='name', suffixes=('', '_median')) std = state_df.groupby('name', as_index=False).freq_per_100k.std() state_df = state_df.merge(std, on='name', suffixes=('', '_std')) state_df['freq_per_100k_zscore'] = state_df.freq_per_100k state_df['freq_per_100k_zscore'] -= state_df.freq_per_100k_median state_df['freq_per_100k_zscore'] /= state_df.freq_per_100k_std
Podemos então Visualizar Quais SãO OS Nomes Mais Regionais, Procurando Pela Máxia Futencia normalizada de Cada Estado.
idxmax = state_df[['state', 'freq_per_100k_zscore']].groupby('state').idxmax() idxmax = idxmax.values.ravel() max_name_by_state = state_df.loc[idxmax][['state', 'name', 'freq_per_100k_zscore']] max_name_by_state = max_name_by_state.sort_values(by='state').set_index('state')
Para Aprender Como Funciona, Nada Melhor Que Brincar Com O Código. Agora é com Você !! Como ficou seu nome Нет рейтинга? Em Qual Estado aparece com maior futencia? Fez uma análise da sua família e descobriu alguma coisa законно? Conta pra Gente no Twitter!
Confira o Notebook Com A Análise oppla no nosso Repositório:
Основанные на основе/анализа
Repositório de Códigos simples e Replicáveis das análises publicadas.
Texto produzido por Виниция , Фернанда е – Паоло, да база Dos Dados 💚
Оригинал: “https://dev.to/basedosdados/base-dos-dados-python-102-50k0”