[PYTHON] Une version simple des statistiques gouvernementales (contrôle de l'immigration) facile à gérer avec jupyter

J'ai pris les statistiques d'immigration du ministère de la Justice et créé Version simple de notebok à traiter.

J'ai beaucoup de commentaires, mais je pense qu'il est pratique de le modifier car il n'est pas classé.

Collez le code jupyter ci-dessous.

#Définissez les paramètres minimaux de la bibliothèque.
import pandas as pd #Chargement d'une bibliothèque de traitement de données appelée pandas
import re  #Pour les expressions régulières
from IPython.display import display, HTML #Charger la bibliothèque pour l'affichage

#Obtenez les données Excel et mettez-les dans des pandas. Cela seul va bien
#L'original Excel est la prémisse d'une feuille.
moto= pd.read_excel('http://www.e-stat.go.jp/SG1/estat/GL08020103.do?_xlsDownload_&fileId=000007747517&releaseCount=1')
#La date est 2016 8, donc à titre d'information supplémentaire, année,Réglez le mois. (Il est bon de faire défiler et de l'obtenir automatiquement.)
year = 2016
month = 8
#Tout d'abord, vérifiez le nombre total
count_all = int(moto.iloc[2,3])
#Vérifiez le nombre total( count_Puisque tout est un entier, affichez-le sous forme de chaîne de caractères et affichez-le au format HTML. )
display(HTML('<h1>Nombre total= ' + str(count_all) + '<h1>'))

#moto.head()Ensuite, vous pouvez voir rapidement les 5 premières lignes de données.
#Le résultat de la dernière ligne d'exécution de la cellule s'affiche. impression(moto.head())Vous n'êtes pas obligé de le faire.
#Vous pouvez voir qu'il y a des lignes et des colonnes supplémentaires lors de la synthèse.
moto.head()

#colonnes Information Le nom du port est tiré du 5ème (Kushiro) de la première ligne.
columns = moto.iloc[1,4:]
#Il existe divers problèmes tels que les sauts de ligne insérés simplement par extraction.
display(columns[12:18])
#l'index est sans nom:Comme il est 16, il est difficile à comprendre, alors changez-le en numéro de série. C'est juste une question d'apparence, vous n'avez donc pas à le faire.
columns.index = range(0,len(columns))
display(columns[12:18])
#Saut de ligne, vide,Etc. sont supprimés.
columns = columns.apply(lambda x: x.replace("\n",'').replace(' ',''))
display(columns[12:18])

# index (Pays)Créer un. (Vous n'êtes pas obligé de le créer, mais vous pouvez l'ajouter car il est pratique pour supprimer des données de ligne.)
idx = moto.iloc[3:,1]
#Saut de ligne, vide,Etc. sont supprimés.
idx = idx.apply(lambda x: x.replace("\n",'').replace(' ',''))
display(idx[12:18])
#Pays(country), Port),Nombre d'immigrants(num)Crée les données formatées de.
#Tout d'abord, créez des données vides.
xdf = pd.DataFrame(columns=['country','port','num'])
#Pays disposé verticalement,port,num 
for i in range(0,len(columns)):
    x = pd.DataFrame(idx)
    x.columns = ['country']
    x['port'] = columns[i]
    x['num'] = moto.iloc[4:,4 + i]
    x.index = idx
    x.index.name = 'country'
    xdf = xdf.append(x)
display(xdf.head(210).tail(10))

#Supprimer les sous-totaux régionaux Les sous-totaux sont NaN (pas de données).
area = ['Asie', 'L'Europe ','Afrique', 'Amérique du Nord', 'Amérique du Sud', 'Océanie']
#J'utilise l'index pour le supprimer. C'est plus facile que de spécifier dans la recherche. en place=Je réécris xdf directement avec True.
xdf.drop(area,inplace=True)
display(xdf.head(210).tail(10))

#Ajoutez les éléments de l'année et du mois.
xdf['year'] = year
xdf['month'] = month
display(xdf.head(210).tail(10))

#Calculer le nombre total pour confirmation
display(HTML('<h1>' + str(xdf['num'].sum()) + '</h1>'))

#Enregistrez le fichier formaté dans un fichier Excel.
xdf.to_excel('immigration.xlsx')

Recommended Posts

Une version simple des statistiques gouvernementales (contrôle de l'immigration) facile à gérer avec jupyter
Créons une spécification externe facile à gérer
[Pour les débutants] Un résumé en mots des langages de programmation populaires (version 2018)
Guide d'installation des outils Python pour Visual Studio
Créer un ensemble de données d'images à utiliser pour la formation
Une version simple des statistiques gouvernementales (contrôle de l'immigration) facile à gérer avec jupyter
Installation d'OpenMDAO (version 1.7.1)
Procédure d'installation pour Python et Ansible avec une version spécifique
Utilisez un langage de script pour une vie C ++ confortable-OpenCV-Port Python vers C ++ -
J'ai essayé de créer un mécanisme de contrôle exclusif avec Go
Faisons un noyau jupyter
J'ai fait une application d'envoi de courrier simple avec tkinter de Python
Pour générer une valeur au milieu d'une cellule avec Jupyter Notebook
Version gratuite de DataRobot! ?? Introduction à «PyCaret», une bibliothèque qui automatise l'apprentissage automatique
Installez séparément une version de Python qui n'est pas préinstallée sur votre Mac
Une nouvelle forme d'application qui fonctionne avec GitHub: Comment créer des applications GitHub
Une méthode pour remplacer un serveur qui exécute un traitement par lots avec cron sans temps d'arrêt
[Mac] Je souhaite créer un serveur HTTP simple qui exécute CGI avec Python
La théorie selon laquelle la clé du contrôle de l'infection du nouveau coronavirus est l'hyperdispersion de la sensibilité.
Un système simple qui prend automatiquement des photos avec détection d'objet et l'envoie à LINE
C'était un peu difficile de faire flacon avec la version docker de nginx-unit
[AWS] J'ai essayé de créer un environnement Python avec un environnement de développement eb [Elastic Beanstalk]
Statistiques simples qui peuvent être utilisées pour analyser l'effet des mesures sur les sites EC et les codes qui peuvent être utilisés dans le notebook jupyter