[PYTHON] Lesen von e-Stat-Subregionsdaten

Kopfzeile von "Chiyoda Ward (10KB)" in "Alter (5 Jahre, 4 Kategorien), geschlechtsspezifische Bevölkerung" der "2010 National Census (Small Area) 2010/10/01" -Daten des Ministeriums für innere Angelegenheiten und Kommunikation e-Stat Versuchen Sie, die Bedeutung von zu verstehen. Wenn Sie einen Fehler machen, würde ich mich freuen, wenn Sie einen Kommentar abgeben könnten.

Grundsätzlich denke ich, dass es im "Definitionsdokument" geschrieben werden sollte, aber es gibt viele Stellen, an denen die Bedeutung des Definitionsdokuments nicht gut verstanden wird. Ich kann die Notwendigkeit, "Seriennummer" oder "Hierarchie" zu erklären, nicht finden.

Wenn man sich die Daten ansieht, kann man sie lesen, als wäre es eine Spalte von "MultiIndex", wie unten gezeigt.

0 1
KEY_CODE
HYOSYO
CITYNAME
NAME
HTKSYORI
HTKSAKI
GASSAN
T000573001 Gesamtzahl, einschließlich Alter "unbekannt"
T000573002 Gesamtzahl 0-4 Jahre alt
T000573003 Insgesamt 5-9 Jahre alt
T000573004 Insgesamt 10-14 Jahre
T000573005 Insgesamt 15-19 Jahre alt
T000573006 Insgesamt 20-24 Jahre alt
T000573007 Insgesamt 25-29 Jahre alt
T000573008 Insgesamt 30-34 Jahre alt
T000573009 Insgesamt 35-39 Jahre alt
T000573010 Insgesamt 40-44 Jahre alt
T000573011 Insgesamt 45-49 Jahre alt
T000573012 Insgesamt 50-54 Jahre alt
T000573013 Insgesamt 55-59 Jahre alt
T000573014 Insgesamt 60-64 Jahre alt
T000573015 Insgesamt 65-69 Jahre alt
T000573016 Insgesamt 70-74 Jahre alt
T000573017 Unter 15 Jahren
T000573018 Insgesamt 15-64 Jahre
T000573019 65 Jahre oder älter
T000573020 75 Jahre oder älter
T000573021 Gesamtzahl der Männer, einschließlich Alter "unbekannt"
T000573022 Mann 0-4 Jahre alt
T000573023 Mann 5-9 Jahre alt
T000573024 Mann 10-14 Jahre alt
T000573025 Mann 15-19 Jahre alt
T000573026 Mann 20-24 Jahre alt
T000573027 Mann 25-29 Jahre alt
T000573028 Mann 30-34 Jahre alt
T000573029 Mann 35-39 Jahre alt
T000573030 Mann 40-44 Jahre alt
T000573031 Mann 45-49 Jahre alt
T000573032 Mann 50-54 Jahre alt
T000573033 Mann 55-59 Jahre alt
T000573034 Mann 60-64 Jahre alt
T000573035 Mann 65-69 Jahre alt
T000573036 Mann 70-74 Jahre alt
T000573037 Mann unter 15 Jahren
T000573038 Mann 15-64 Jahre alt
T000573039 Mann über 65 Jahre alt
T000573040 Mann über 75 Jahre alt
T000573041 Gesamtzahl der Frauen, einschließlich Alter "unbekannt"
T000573042 Frau 0-4 Jahre alt
T000573043 Frau 5-9 Jahre alt
T000573044 Frau 10-14 Jahre alt
T000573045 Frau 15-19 Jahre alt
T000573046 Frau 20-24 Jahre alt
T000573047 Frau 25-29 Jahre alt
T000573048 Frau 30-34 Jahre alt
T000573049 Frau 35-39 Jahre alt
T000573050 Frau 40-44 Jahre alt
T000573051 Frau 45-49 Jahre alt
T000573052 Frau 50-54 Jahre alt
T000573053 Frau 55-59 Jahre alt
T000573054 Frau 60-64 Jahre alt
T000573055 Frau 65-69 Jahre alt
T000573056 Frau 70-74 Jahre alt
T000573057 Frau unter 15 Jahren
T000573058 Frau 15-64 Jahre alt
T000573059 Frau über 65 Jahre alt
T000573060 Frau über 75 Jahre alt

"KEY_CODE", "HYOSYO", "CITYNAME", "NAME", "HTKSYORI", "HTKSAKI", "GASSAN" sind in der vorherigen Definition nicht aufgeführt. Diese Bedeutungen sind wichtig.

KEY_CODE

Verwaltungscode. Die Größe des Fachs ändert sich je nach Anzahl der Stellen. Die Anzahl der Ziffern beträgt 5, 9, 11 und wird ausgehend vom Codesystem des Verwaltungscodes erstellt. Sowohl das große Fach als auch die darin enthaltenen kleinen Fächer existieren auch als Reihen. Bei paralleler Anwesenheit enthalten die größeren Pakete den Gesamtwert.

HYOSYO

Die Tiefe des zusammengesetzten Codesystems von KEY_CODE?

CITYNAME

Landname in der größten Einheit

NAME

Landname in der kleinsten Einheit

HTKSYORI

Gibt an, ob eine "vertrauliche Verarbeitung" durchgeführt wird. Es gibt zwei Arten, "Geheimbereich" und "Gesamtbereich", und diese stehen in einer gegenseitigen Beziehung.

HTKSAKI

Ein Wert wird eingegeben, wenn "HTKSYORI" ein "geheimer Bereich" ist. In Verkettung mit den ersten 5 Zeichen von KEY_CODE in der entsprechenden Zeile verwenden.

GASSAN

Ein Wert wird eingegeben, wenn "HtKSYORI" auf "Es gibt eine Gesamtfläche" gesetzt ist. In Verkettung mit den ersten 5 Zeichen von KEY_CODE in der entsprechenden Zeile verwenden. Wenn mehrere Regionen kombiniert werden, werden mehrere Regionen mit einem Semikolon verkettet.

pandas

So was?

import pandas as pd

opts = dict(
    header=[0,1],
    converters={i:str for i in range(7)}
)
txt_ = pd.concat([pd.read_csv(open(f, encoding="CP932"), **opts) for f in glob.glob("tblT000573C27*.txt")])
txt_columns = txt_.columns
txt_.columns =  [c[0] if c[1].startswith("Unnamed:") else c[1] for c in txt_.columns]
txt = pd.concat([txt_[txt_.columns[:7]],
    txt_[txt_.columns[7:]].applymap(lambda s: 0 if s in ("-","X") else int(s))], axis=1)

for ri,r in txt.iterrows():
    for s in r["GASSAN"].split(";"):
        if not s:
            continue
        t = r["KEY_CODE"][:5]+s
        assert txt[txt["KEY_CODE"]==t].shape[0] == 1

Recommended Posts

Lesen von e-Stat-Subregionsdaten
Wie man Problemdaten mit Paiza liest
Wie man PyPI liest
Wie man JSON liest
[Python] Lesen von Daten aus CIFAR-10 und CIFAR-100
Lesen von Zeitreihendaten in PyTorch
Umgang mit Datenrahmen
[Python] Wie man MP3-Daten fFT
Umgang mit unausgeglichenen Daten
Lesen des SNLI-Datensatzes
Aufblasen von Daten (Datenerweiterung) mit PyTorch
Sammeln von Daten zum maschinellen Lernen
Wie man pydoc auf Python Interpreter liest
Verwendung von "deque" für Python-Daten
Umgang mit Zeitreihendaten (Implementierung)
Lesen von CSV-Dateien mit Pandas
Bücher über Datenwissenschaft, die 2020 gelesen werden sollen
Pandas Daten lesen
[SQL Alchemy] Daten lesen
e-Stat GIS-Daten
[Python] Daten lesen
Erstellen von CSV-Beispieldaten mit Hypothese
Lesen einer CSV-Datei mit Python 2/3
[Python] Wie man Excel-Dateien mit Pandas liest
[Django] So erhalten Sie Daten durch Angabe von SQL.
So kratzen Sie Pferderenndaten mit Beautiful Soup
Verwendung von Datenanalysetools für Anfänger
[Einführung in Python] Umgang mit Daten im JSON-Format
So lesen Sie ein Array mit Pythons ConfigParser
So erhalten Sie Artikeldaten mithilfe der Qiita-API
So erstellen Sie Daten für CNN (Chainer)
Ich las "Wie man ein Hacking Lab macht"
So suchen Sie HTML-Daten mit Beautiful Soup
Tensorufuro, Tensafuro Immerhin welches (wie man Tensorflow liest)
Datenbereinigung Umgang mit fehlenden und Ausreißern
So lesen Sie Dateien in verschiedenen Verzeichnissen
Zusammenfassung zum Lesen numerischer Daten mit Python [CSV, NetCDF, Fortran Binary]
Lesen Sie die Python-Markdown-Quelle: So erstellen Sie einen Parser
Verwendung von xml.etree.ElementTree
Verwendung von virtualenv
Schaben 2 Wie man kratzt
Wie benutzt man Seaboan?
So wenden Sie mit matplotlib Marker nur auf bestimmte Daten an
Verwendung von Image-Match
Wie man Shogun benutzt
So installieren Sie Python
Verwendung von Pandas 2
[Für Anfänger] So studieren Sie den Python3-Datenanalysetest
So kratzen Sie Bilddaten von Flickr mit Python
So installieren Sie pip
Verwendung von Virtualenv
Verwendung von numpy.vectorize
So aktualisieren Sie easy_install
So installieren Sie archlinux
Wie man Pferderenndaten mit pandas read_html kratzt
So erstellen Sie während des Codierens schnell Beispieldaten für ein Array
Verwendung von pytest_report_header
So konvertieren Sie horizontal gehaltene Daten mit Pandas in vertikal gehaltene Daten
Wie man Gunicorn neu startet
So installieren Sie Python