Рубрики
Без рубрики

Anlise da Felicidade Com Pandas

Entre várias fontes de dados no Kaggle UMA DELAS É A Relação de Felicidade Com Algumas Estátisticas D … Теги с Python, наукой данных.

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  com o id "countries"
table = soup.find("table", attrs={"id": "countries"})
# Para visualizar de forma estruturada: print(table.prettify())

# Converter o conteúdo DataFrame do pandas
# Alterando valor NA para NT, para evitar a conversão para valores nulos
table_countries = pd.read_html(str(table).replace("", ""))[0]

# Selecionar os campos que serão usados
countries = table_countries[["Country", "Area in km²", "Population", "Continent"]]
countries.head()
NANT
Андорра ЕС 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”