[PYTHON] Visualisez l'état de la réponse du recensement national 2020

introduction

kokusei2020.png

Visualisez le taux de réponse Internet et le taux de réponse au courrier en grattant Excel du statut de réponse par préfecture dans National Census 2020

Grattage

import requests
from bs4 import BeautifulSoup

import re

from urllib.parse import urljoin

url = "https://www.kokusei2020.go.jp/internet/"

r = requests.get(url)
r.raise_for_status()

soup = BeautifulSoup(r.content, "html.parser")

links = {}

for i in soup.find_all("span", text="Excel"):

    link = urljoin(url, i.find_parent("a").get("href"))

    m = re.search("census_answers_(pref|city)_\d{6}.xlsx", link)

    if m:
        links[m.group(1)] = link

links

Par préfecture

import pandas as pd

df_pref = pd.read_excel(
    links["pref"],
    index_col=[0, 1],
    header=None,
    skiprows=9,
    usecols=[1, 2, 3, 4, 5, 6, 7],
    names=["code", "Préfectures", "Nombre de ménages H27", "Net", "Par mail", "Net率", "Par mail率"],
)

df_pref["Nombre de réponses"] = df_pref["Net"] + df_pref["Par mail"]

df_pref["Tarif net"] *= 100
df_pref["Tarif d'envoi"] *= 100

df_pref["Taux de réponse"] = df_pref["Tarif net"] + df_pref["Tarif d'envoi"]

df_pref.to_csv("pref.csv", encoding="utf_8_sig")

Par commune

df_city = pd.read_excel(
    links["city"],
    index_col=[0, 1, 2],
    header=None,
    skiprows=9,
    usecols=[1, 2, 3, 4, 5, 6, 7, 8],
    names=["code", "Préfectures", "Municipalité", "Nombre de ménages H27", "Net", "Par mail", "Net率", "Par mail率"],
)

df_city["Nombre de réponses"] = df_city["Net"] + df_city["Par mail"]

df_city["Tarif net"] *= 100
df_city["Tarif d'envoi"] *= 100

df_city["Taux de réponse"] = df_city["Tarif net"] + df_city["Tarif d'envoi"]

df_city.to_csv("city.csv", encoding="utf_8_sig")

df_city

Visualisation

import matplotlib.pyplot as plt
import seaborn as sns

sns.set()

import japanize_matplotlib

#résolution
import matplotlib as mpl

mpl.rcParams["figure.dpi"] = 200

df1 = df_pref.sort_index(ascending=False).reset_index(level="code", drop=True)

df1.loc[:, ["Tarif net", "Tarif d'envoi"]].plot.barh(stacked=True, figsize=(5, 10))

plt.legend(bbox_to_anchor=(1.05, 1), loc="upper left", borderaxespad=0, fontsize=8)

plt.savefig("01.png ", dpi=200, bbox_inches="tight")
plt.show()

pref.png

Recommended Posts

Visualisez l'état de la réponse du recensement national 2020
Visualisez la trajectoire de Hayabusa 2
Visualisez le statut d'appréciation des œuvres d'art avec OpenCV
Visualisez les données d'exportation du journal Piyo
Surveillez régulièrement la réponse HTTP du serveur Web
Visualisez le comportement de l'algorithme de tri avec matplotlib
Vérifiez l'état des données à l'aide de pandas_profiling
Je souhaite visualiser l'état des transferts de la J League 2020, que dois-je faire?
Le sens de soi
le zen de Python
Visualisez la gamme d'insertions internes et externes avec python
L'histoire de sys.path.append ()
Visualisez le vocabulaire caractéristique d'un document avec D3.js
J'ai essayé de visualiser les informations spacha de VTuber
Comprendre l'état de la perte de données - Python vs R
Obtenez l'état de fonctionnement de JR West avec Python
Visualisez le nombre de plaintes des compagnies d'assurance-vie
La vengeance des types: la vengeance des types
Visualisons le volume des transactions des actions TSE - Exemple Jpxlab
Visualisez les résultats des arbres de décision réalisés avec Python scikit-learn
Django renvoie le contenu du fichier sous forme de réponse HTTP
[Blender] Connaître l'état de sélection des objets cachés sur l'outliner
Visualisez la "couleur régionale" de la ville en appliquant la vectorisation des documents
Vérifiez l'état de la mémoire du serveur avec la commande gratuite Linux
Vérifiez l'état de fonctionnement du serveur avec la commande Linux top
Devinons l'état de développement de la ville à partir de l'image satellite.
[Python] J'ai essayé de visualiser la relation de suivi de Twitter
Visualisons le nombre de personnes infectées par le virus corona avec matplotlib
Visualisez le flux des tweets avec Diamond + Graphite + Grafana
[Flask & Bootstrap] Visualisez le contenu des paroles avec Word Cloud ~ Lyrics Word Cloud ~
Aligner la version de chromedriver_binary
Grattage du résultat de "Schedule-kun"
10. Compter le nombre de lignes
Vers la retraite de Python2
Obtenez le nombre de chiffres
Expliquez le code de Tensorflow_in_ROS
Réutiliser les résultats du clustering
Visualisons GraphConvModel de DeepChem
GoPiGo3 du vieil homme
Calculez le nombre de changements
Changer le thème de Jupyter
La popularité des langages de programmation
Changer le style de matplotlib
À propos des composants de Luigi
Composants liés du graphique
Filtrer la sortie de tracemalloc
À propos des fonctionnalités de Python
Simulation du contenu du portefeuille
Le pouvoir des pandas: Python
Visualisez verticalement la quantité correspondant au sommet de networkx à l'aide d'Axes3D
Vérifiez la réponse du code d'état HTTP avec la commande curl (#Linux #Shell)
À propos de Boxplot et Violinplot qui visualisent la variation des données indépendantes
Visualisez le centre de l'environnement de combat de rang à partir de l'API Pokemon Home
Visualisez la fréquence des occurrences de mots dans les phrases avec Word Cloud. [Python]
J'ai vérifié l'état d'utilisation du parking à partir d'images satellite.
[Word2vec] Visualisons le résultat du traitement en langage naturel des avis des entreprises
J'ai essayé de visualiser la condition commune des téléspectateurs de la chaîne VTuber