Ich nahm die Einwanderungsstatistik des Justizministeriums und erstellte Einfache Version von Notebok zur Verarbeitung.
Ich habe viele Kommentare, aber ich denke, es ist bequem zu ändern, weil es nicht klassifiziert ist.
Fügen Sie den Jupyter-Code unten ein.
#Nehmen Sie die minimalen Bibliothekseinstellungen vor.
import pandas as pd #Laden einer Datenverarbeitungsbibliothek namens pandas
import re #Für reguläre Ausdrücke
from IPython.display import display, HTML #Laden Sie die Bibliothek zur Anzeige
#Holen Sie sich die Excel-Daten und legen Sie sie in Pandas. Das allein ist okay
#Das ursprüngliche Excel ist die Voraussetzung für ein Blatt.
moto= pd.read_excel('http://www.e-stat.go.jp/SG1/estat/GL08020103.do?_xlsDownload_&fileId=000007747517&releaseCount=1')
#Das Datum ist 2016 8, also als zusätzliche Information Jahr,Stellen Sie den Monat ein. (Es ist gut zu scrollen und es automatisch zu bekommen.)
year = 2016
month = 8
#Überprüfen Sie zunächst die Gesamtzahl
count_all = int(moto.iloc[2,3])
#Überprüfen Sie die Gesamtzahl( count_Da alles eine Ganzzahl ist, zeigen Sie es als Zeichenfolge und als HTML an. )
display(HTML('<h1>Gesamtzahl= ' + str(count_all) + '<h1>'))
#moto.head()Dann können Sie schnell die ersten 5 Datenzeilen sehen.
#Das Ergebnis der letzten Laufzeile in der Zelle wird angezeigt. drucken(moto.head())Du musst es nicht tun.
#Sie können sehen, dass beim Zusammenfassen zusätzliche Zeilen und Spalten vorhanden sind.
moto.head()
#Spalten Information Der Portname stammt aus dem 5. (Kushiro) in der ersten Zeile.
columns = moto.iloc[1,4:]
#Es gibt verschiedene Probleme, wie z. B. Zeilenumbrüche, die nur durch Abrufen eingefügt werden.
display(columns[12:18])
#Index ist unbenannt:Da es 16 ist, ist es schwer zu verstehen, also ändern Sie es in eine Seriennummer. Es ist nur eine Frage des Aussehens, also müssen Sie es nicht tun.
columns.index = range(0,len(columns))
display(columns[12:18])
#Zeilenumbruch, leer,Usw. werden entfernt.
columns = columns.apply(lambda x: x.replace("\n",'').replace(' ',''))
display(columns[12:18])
# index (Land)Ein ... kreieren. (Sie müssen es nicht erstellen, können es jedoch hinzufügen, da es zum Löschen von Zeilendaten geeignet ist.)
idx = moto.iloc[3:,1]
#Zeilenumbruch, leer,Usw. werden entfernt.
idx = idx.apply(lambda x: x.replace("\n",'').replace(' ',''))
display(idx[12:18])
#Land(country), Hafen),Anzahl der Einwanderer(num)Erstellt die formatierten Daten von.
#Erstellen Sie zunächst leere Daten.
xdf = pd.DataFrame(columns=['country','port','num'])
#Vertikal angeordnetes Land,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))
#Regionale Zwischensummen entfernen Die Zwischensummen sind NaN (keine Daten verfügbar).
area = ['Asien', 'Europa','Afrika', 'Nordamerika', 'Südamerika', 'Ozeanien']
#Ich benutze Index, um es zu löschen. Es ist einfacher als in der Suche anzugeben. an Ort und Stelle=Ich schreibe xdf direkt mit True um.
xdf.drop(area,inplace=True)
display(xdf.head(210).tail(10))
#Fügen Sie die Jahres- und Monatselemente hinzu.
xdf['year'] = year
xdf['month'] = month
display(xdf.head(210).tail(10))
#Berechnen Sie die Gesamtzahl zur Bestätigung
display(HTML('<h1>' + str(xdf['num'].sum()) + '</h1>'))
#Speichern Sie die formatierte Datei in einer Excel-Datei.
xdf.to_excel('immigration.xlsx')
Recommended Posts