Entre várias fontes de dados no kaggle uma delas é relação de felicidade com algumas estátisticas de uma país o Сообщение о мире счастья Vamos Gerar Algumas Visualizações
Correlação.
Instalação Das Bibliotecas Utilizadas
pip install pandas matplotlib
Importação com apelido para elas bibliotecas
import pandas as pd import numpy as np import matplotlib.pyplot as plt from matplotlib.pyplot import figure
Fazendo o Скачать da base em Сообщение о мире счастья Carregando Para Memória E Visualizando OS Sameiro Регистрация
df = pd.read_csv("./datasets_894_813759_2019.csv") df.head()
7.769 | 0.153 | 1 | 1.340 | 1.587 | Финляндия | 0.986 | 0.393 | 0.596 |
7.600 | 0.252 | 2 | 1.383 | 1.573 | Дания | 0.996 | 0.410 | 0.592 |
7.554 | 0.271 | 3 | 1.488 | 1.582 | Норвегия | 1.028 | 0.341 | 0.603 |
7.494 | 0.354 | 4 | 1.380 | 1.624 | Исландия | 1.026 | 0.118 | 0.591 |
7.488 | 0.322 | 5 | 1.396 | 1.522 | Нидерланды | 0.999 | 0.298 | 0.557 |
Trabalhar COM Esses NoMes É Muito Chato, Vamos Simplifififififierar UM POUCO, RENOMEANDO AS COLUNAS
df = df.rename(columns={"Overall rank": "Rank", "Country or region": "Region", "GDP per capita": "GDP", "Social support": "Social", "Healthy life expectancy": "Healthy", "Freedom to make life choices": "Freedom", "Perceptions of corruption": "Corruption"})
Visualizando As Correlações Entre OS Atributos
values_columns = ["Score", "GDP", "Social", "Healthy", "Freedom", "Generosity", "Corruption"] corr = df[values_columns].corr() corr
Ideia da Matrix de Correlação écontrar o Resuldado Mais Longe Do Zero Ou Seja Mais Perto de 1 OU -1
0.793883 | 1.000000 | 0.777058 | 0.566742 | 0.779883 | 0.385613 | 0.075824 | Счет |
1.000000 | 0.793883 | 0.754906 | 0.379079 | 0.835462 | 0.298920 | -0.079662 | Вспомогательный |
0.754906 | 0.777058 | 1.000000 | 0.447333 | 0.719009 | 0.181899 | -0.048126 | Социальное |
0.835462 | 0.779883 | 0.719009 | 0.390395 | 1.000000 | 0.295283 | -0.029511 | Здоровый |
0.379079 | 0.566742 | 0.447333 | 1.000000 | 0.390395 | 0.438843 | 0.269742 | Свобода |
-0.079662 | 0.075824 | -0.048126 | 0.269742 | -0.029511 | 0.326538 | 1.000000 | Щедрость |
0.298920 | 0.385613 | 0.181899 | 0.438843 | 0.295283 | 1.000000 | 0.326538 | Коррупция |
O Valor Mais Próximos Оценка Сан-ОС Валовой внутренний продукт (ВВП) на душу населения е Здоровое продолжительность жизни , Mas Podemos Visualizar Isso Em Gráfico
pd.plotting.scatter_matrix(df[values_columns], figsize=(18, 18)) plt.savefig("radar_scatter_matrix_correlation.svg", formatstr="svg") plt.show()
Informações Geograficas.
Para Proxima Visualização Precisamos de Mais informações no caso os connatentes escolhi База делает Lista de puises do geonames
COMO a informação está na web precisamos fazer a leitura com web scraping, пункт iniacire vamos fazer instalação das bibliotecas do Beautifulsoup, funções para lidar com requisições http E O PACOTE DE LEITURA DE TAGS DO PANDAS
pip install beautifulsoup4 requests lxml
Ler как informações da tabela do сайт e converter
# Importação das bibliotecas para Web Scraping e requisições HTTP from bs4 import BeautifulSoup from requests import get # Colher o conteúdo do geonames html = get("https://www.geonames.org/countries/").text # Converter o texto para elementos de tags do Beautiful Soup soup = BeautifulSoup(html) # Para visualizar de forma estruturada: print(soup.prettify()) # Procurar a tag
NA | ", "NT | "))[0] # Selecionar os campos que serão usados countries = table_countries[["Country", "Area in km²", "Population", "Continent"]] countries.head()
Андорра | ЕС | 77006 | 468.0 |
Объединенные Арабские Эмираты | В КАЧЕСТВЕ | 9630959 | 82880.0 |
Афганистан | В КАЧЕСТВЕ | 37172386 | 647500.0 |
Антигуа и Барбуда | Нота | 96286 | 443.0 |
Ангилья | Нота | 13254 | 102.0 |
Normentmente Trabalhando Com Várias Bases de dados é comum как informações não cruzam, нет caso de países tem visões diferentes de mundo
set(df["Region"]) - set(countries["Country"])
COMO Vamos Tem Alguns Países Diferentes, Por Ausência ou Concepção dom Nomenclaturas
{«Конго (Браззавиль)», «Конго (Киншаса)», «Чешская Республика», «Северный Кипр», «Палестинские территории», «Свазиленд», «Тринидад и Тобаго»}
Vamos Unir OS Países существуют EM Ambas в качестве баз
data = pd.merge(df, countries, left_on="Region", right_on="Country").drop("Country", axis=1) data = data.rename(columns={"Area in km²": "Area"}) data.head()
1.340 | 337030.0 | 1 | 7.769 | Финляндия | 1.587 | 0.596 | 0.986 | ЕС | 0.393 | 0.153 | 5518050 |
1.383 | 43094.0 | 2 | 7.600 | Дания | 1.573 | 0.592 | 0.996 | ЕС | 0.410 | 0.252 | 5797446 |
1.488 | 324220.0 | 3 | 7.554 | Норвегия | 1.582 | 0.603 | 1.028 | ЕС | 0.341 | 0.271 | 5314336 |
1.380 | 103000.0 | 4 | 7.494 | Исландия | 1.624 | 0.591 | 1.026 | ЕС | 0.118 | 0.354 | 353574 |
1.396 | 41526.0 | 5 | 7.488 | Нидерланды | 1.522 | 0.557 | 0.999 | ЕС | 0.298 | 0.322 | 17231017 |
E FINCHMENEE GERAR UM GRAFICO COM O Оценка de felicidade e Как informações que São Mais Correlacionass, COM O Tamanho Dos Circulos Pela Pontuação de Pointativa de Vida E SORTADO POR CORES
# Definição do tamanho do gráfico plt.figure(figsize=(18, 18)) # Colher os continentes diferentes da base continents = data["Continent"].unique() # Geração dos ciclos for continent in continents: dc = data[data["Continent"] == continent] plt.scatter(dc["Score"], dc["GDP"], s=dc["Healthy"] * 500, alpha=0.4, label=continent) # Adicionar título plt.title("Scatter Happiness Radar") # Adicionar rótulos nos eixos plt.xlabel("Score") plt.ylabel("GDP per capita") # Adicionar legenda para os continentes plt.legend(scatterpoints=1, frameon=False, labelspacing=1, title="Continents") # Salvar gráfico em arquivo plt.savefig("radar_scatter_happiness_radar.svg", formatstr="svg") # Apresentar o gráfico em tela plt.show()
Координады
AGORA VAMOS ADICOIONAR AS CODEENADAS PARA OS PAYSES, PARA ISSO TEM OUTRA FONTE DE DADOS NO KAGGLE NO Географические координаты округов , Vamos Importar E Visualizar Essas Informações.
coods = pd.read_csv("./datasets_2312_3908_countries.csv") coods.head()
Андорра | ОБЪЯВЛЕНИЕ | 42.546245 | 1.601554 |
Объединенные Арабские Эмираты | Ae. | 23.424076 | 53.847818 |
Афганистан | Аф. | 33.939110 | 67.709953 |
Антигуа и Барбуда | Аг | 17.060816 | -61.796428 |
Ангилья | Ai. | 18.220554 | -63.068615 |
Novamente Vamos Conferir как Informações divergentes
set(data["Region"]) - set(coods["name"])
{«Берессия из слоновой кости», «Мьянмарь», «Северная Македония», «Южный Судан»}
Novamente Vamos Unir Essas Informações E Visualizar Como Fica após.
cc = pd.merge(data, coods, left_on="Region", right_on="name").drop(["name", "country"], axis=1) cc.head()
1.340 | 337030.0 | 1 | 7.769 | Финляндия | 1.587 | 0.596 | 0.986 | 61.924110 | ЕС | 25.748151 | 0.393 | 0.153 | 5518050 |
1.383 | 43094.0 | 2 | 7.600 | Дания | 1.573 | 0.592 | 0.996 | 56.263920 | ЕС | 9.501785 | 0.410 | 0.252 | 5797446 |
1.488 | 324220.0 | 3 | 7.554 | Норвегия | 1.582 | 0.603 | 1.028 | 60.472024 | ЕС | 8.468946 | 0.341 | 0.271 | 5314336 |
1.380 | 103000.0 | 4 | 7.494 | Исландия | 1.624 | 0.591 | 1.026 | 64.963051 | ЕС | -19.020835 | 0.118 | 0.354 | 353574 |
1.396 | 41526.0 | 5 | 7.488 | Нидерланды | 1.522 | 0.557 | 0.999 | 52.132633 | ЕС | 5.291266 | 0.298 | 0.322 | 17231017 |
Gerar o gráfico de scatter com posicionamento do geográfico
plt.figure(figsize=(18, 9)) continents = cc["Continent"].unique() for continent in continents: dc = cc[cc["Continent"] == continent] plt.scatter(dc["longitude"], dc["latitude"], s=dc["Score"] * 50, alpha=0.4) plt.savefig("radar_coods.svg", formatstr="svg") plt.show()
AGORA ADICIONANDO A Image DE FUNDO DO MAPA MUNDI Clip Art Free – карта мира
import matplotlib.image as mpimg world_img = mpimg.imread("./world-map.png") # 2000 x 1202 plt.figure(figsize=(18, 9)) continents = cc["Continent"].unique() for continent in continents: dc = cc[cc["Continent"] == continent] plt.scatter(dc["longitude"], dc["latitude"], s=dc["Score"].pow(3), alpha=0.6) # plt.imshow(world_img, extent=[-149, 190, -75, 105], alpha=0.25) # left, right, bottom, top plt.savefig("radar_world_map.svg", formatstr="svg") plt.show()
Salvando Fonte de Dados Tratada Para Futuros Usos
cc.to_csv("./countries.csv", index = False, header=True)
Головной проход Baixar Aqui: Страны с координатами
Реферис
Python Data Science Справочник – Настройка земельных участков
Оригинал: “https://dev.to/johnywalves/analise-da-felicidade-com-pandas-1pfk”