Öffnen Sie eine Excel-Datei in Python und färben Sie die Karte von Japan

Wir werden uns hier mit diesen beiden befassen. Es läuft auf Google Colaboratory.

Färben Sie die Karte von Japan

Installation der Bibliothek japanmap

!pip install japanmap

Importieren Sie die erforderlichen Bibliotheken

from japanmap import pref_names,pref_code,picture

Name der Präfektur

print(pref_names)

['_', 'Hokkaido', 'Präfektur Aomori', Präfektur Iwate ', Präfektur Miyagi', Präfektur Akita ', Präfektur Yamagata', Präfektur Fukushima ', Präfektur Ibaraki', Präfektur Tochigi ' Präfektur Gunma, Präfektur Saitama, Präfektur Chiba, Metropolregion Tokio, Präfektur Kanagawa, Präfektur Niigata, Präfektur Toyig, Präfektur Ishikawa, Präfektur Fukui, Präfektur Yamanashi Präfektur Nagano, Präfektur Gifu, Präfektur Shizuoka, Präfektur Aichi, Präfektur Mie, Präfektur Shie, Präfektur Kyoto, Präfektur Osaka, Präfektur Hyogo, Präfektur Nara Präfektur Wakayama, Präfektur Tottori, Präfektur Shimane, Präfektur Okayama, Präfektur Hiroshima, Präfektur Yamoshuchi, Präfektur Tokushima, Präfektur Kagawa, Präfektur Ehime, Präfektur Kochi Präfektur Fukuoka ', Präfektur Saga', Präfektur Nagasaki ', Präfektur Kumamoto', Präfektur Oita ', Präfektur Miyazaki', Präfektur Kagoshima ', Präfektur Okinawa']

Präfekturcode

pref_code('Tokio')
13

Eine weiße Karte zeichnen

%matplotlib inline
import matplotlib.pyplot as plt
from pylab import rcParams
 
rcParams['figure.figsize'] = 6, 6
plt.imshow(picture())

output_4_1.png

Färbung der angegebenen Präfektur

plt.imshow(picture({'Tottori':'red','Saga':(0,255,0)}))

output_5_1.png

Öffnen Sie die Excel-Datei

Als Thema habe ich die Excel-Datei der statistischen Daten der Präfektur verwendet, die auf der Website von Teikoku Shoin veröffentlicht wurde.

herunterladen

urllib ist eine Bibliothek zum Herunterladen. Wenn Sie sie jedoch in Google Colab verwenden, laden Sie sie in Google Colab hoch. In Google Colab wird die hochgeladene Datei am Ende der Sitzung ausgeblendet. Laden Sie sie daher zu diesem Zeitpunkt erneut hoch.

#Herunterladen von urllib
import urllib.request 
url = "URL, unter der sich die Excel-Datei befindet"
urllib.request.urlretrieve(url, 'Teikoku-Shoin-Japan.xlsx') 

Öffnen Sie Excel

Soweit ich weiß, gibt es zwei Möglichkeiten, eine Excel-Datei in Python zu öffnen.

import pandas as pd
excel = pd.read_excel('Teikoku-Shoin-Japan.xlsx') #Diese Methode funktioniert möglicherweise nicht
import pandas as pd
excel = pd.ExcelFile('Teikoku-Shoin-Japan.xlsx') #Ich habe das Gefühl, dass dieser besser funktioniert

Excel besteht im Gegensatz zu CSV usw. aus mehreren Blättern.

for s in enumerate(excel.sheet_names):
    print(s) #Listen Sie Blattnamen und -nummern auf

(0, 'Area \ u3000 [2017]') (1, 'Bevölkerung \ u3000 [2018]') (2, 'Bevölkerungsdichte \ u3000 [2018]') (3, 'Bevölkerungswachstumsrate \ u3000 [2010-2015]') (4, 'Alte (65 Jahre und älter) Bevölkerungsrate \ u3000 [2018]') (5, „Bevölkerungsverhältnis nach Industriezweigen (2015)“) (6, 'Durchschnittliche Lebenserwartung (weiblich) \ u3000 [2015]') (7, 'Lebenserwartung (männlich) \ u3000 [2015]') (8, „Anbaufläche [2017]“) (9, 'Ackerlandverhältnis \ u3000 [2017]') (10, 'Waldrate / gepflanzte Waldrate [2017]') (11, 'Weizenproduktion \ u3000 [2018]') (12, 'Reisproduktion \ u3000 [2017]') (13, 'Herstellung von Süßigkeiten \ u3000 [2017]') (14, 'Kartoffelproduktion \ u3000 [2017]') (15, 'Sojabohnenproduktion \ u3000 [2017]') (16, 'Produktion von Erdnüssen \ u3000 [2017]') (17, 'Cabetsu-Produktion \ u3000 [2017]') (18, 'Gurkenproduktion \ u3000 [2017]') (19, 'Produktion von Tintenfisch \ u3000 [2017]') (20, 'Daikon-Produktion \ u3000 [2017]') (21, „Produktion von Raps [2017]“) (22, 'Karottenproduktion \ u3000 [2017]') (23, 'Produktion von Frühlingszwiebeln \ u3000 [2017]') (24, 'Hakusai-Produktion \ u3000 [2017]') (25, 'Peman Production \ u3000 [2017]') (26, 'Frühlingsgrasproduktion \ u3000 [2017]') (27, 'Herstellung von Tee (rauer Tee) \ u3000 [2017]') (28, 'Produktion von Erdbeeren \ u3000 [2017]') (29, 'Ume Production \ u3000 [2017]') (30, 'Produktion von Melonen \ u3000 [2017]') (31, 'Persimmon-Produktion \ u3000 [2017]') (32, 'Sakuranbo-Produktion \ u3000 [2017]') (33, 'Produktion von Orangen \ u3000 [2017]') (34, 'Momo-Produktion \ u3000 [2017]') (35, 'Herstellung von Äpfeln \ u3000 [2017]') (36, 'Chrysanthemenversand [2017]') (37, 'Stiefmütterchen-Sendungen [2017]') (38, 'Sendungen westlicher Orchideen (Schnittblumen) \ u3000 [2017]') (39, 'Anzahl der Broilervögel \ u3000 [2018]') (40, 'Anzahl der aufgezogenen Schweine \ u3000 [2018]') (41, 'Anzahl der aufgezogenen Rinder \ u3000 [2018]') (42, 'Anzahl der Milchkühe \ u3000 [2018]') (43, 'Mayu-Produktion [2017]') (44, 'Agrarproduktion \ u3000 [2017]') (45, 'Reisproduktion \ u3000 [2017]') (46, 'Weizenproduktion \ u3000 [2017]') (47, 'Bean output \ u3000 [2017]') (48, 'Imo-Produktionsmenge \ u3000 [2017]') (49, 'Gemüseproduktion \ u3000 [2017]') (50, 'Obstproduktion \ u3000 [2017]') (51, 'Blumenleistung \ u3000 [2017]') (52, 'Produktionsmenge handwerklicher landwirtschaftlicher Erzeugnisse \ u3000 [2017]') (53, 'Viehproduktion \ u3000 [2017]') (54, „Fischereierzeugung (Fischerei / Anbau) [2016]“) (55, 'Squid catch \ u3000 [2016]') (56, 'Katsuos Fang \ u3000 [2016]') (57, 'Sanmas Fang \ u3000 [2016]') (58, 'Maiwashis Fang \ u3000 [2016]') (59, 'Thunfischfang \ u3000 [2016]') (60, 'Kaki no Cultivation \ u3000 [2016]') (61, 'Kultivierung von Jakobsmuscheln \ u3000 [2016]') (62, 'Wakame-Anbau \ u3000 [2016]') (63, 'Produktion von Material (Rohholz) \ u3000 [2016]') (64, 'Industrieller Versandwert \ u3000 [2016]') (65, „Herstellung von Fruchtschnaps [2016]“) (66, 'Yakichu-Produktion [2016]') (67, 'Herstellung von Sake (einschließlich schlammigem Sake) \ u3000 [2016]') (68, 'Bierherstellung \ u3000 [2016]') (69, „Produktion von Öl- und Kohleprodukten [2016]“) (70, 'Halbleiterproduktion \ u3000 [2016]') (71, 'Produktion von Industrierobotern \ u3000 [2016]') (72, 'Produktion von Kraftfahrzeugen (einschließlich Motorrädern) \ u3000 [2016]') (73, 'Faserproduktion \ u3000 [2016]') (74, 'Stahlproduktion \ u3000 [2016]') (75, 'Produktion von integrierten Schaltkreisen \ u3000 [2016]') (76, 'Präfektureinkommen pro Kopf \ u3000 [2015]') (77, 'Stadtparkfläche pro Person \ u3000 [Ende März 2017]') (78, 'Strombedarf pro Person \ u3000 [2015]') (79, 'pro Tag tägliche Abfallemissionen \ u3000 [2016]') (80, 'Kanalisationsdurchdringungsrate \ u3000 [2018]') (81, 'Anzahl der Personenkraftwagen pro Haushalt \ u3000 [2018]') (82, 'Jährliche Einzelhandelsumsätze \ u3000 2015') (83, 'Anzahl der Verschmutzungsbeschwerden \ u3000 [2017]')

Ich werde ein geeignetes Blatt auswählen

sheet_index = 2
print(excel.sheet_names[sheet_index])
sheet = excel.parse(excel.sheet_names[sheet_index], header=None) #Machen Sie den Inhalt des zweiten Blattes im Pandas-Format

Bevölkerungsdichte [2018]

sheet.head() #Überprüfen Sie die Form der Daten
Präfekturcode
0 1 2
0 Quelle: Grundgesamtheit 2018 Einwohnerzahl / Anzahl der Haushalte, 2017 Fläche nach Präfektur, Stadt, Gemeinde und Dorf NaN NaN
1 Präfekturname (Personen / km2)
2 1 Hokkaido 64
3 2 Aomori 136
4 3 Iwate 83

Datenverarbeitung

sheet.iloc[2:49, [0, 2]] #Extrahieren Sie die erforderlichen Teile
0 2
2 1 64
3 2 136
4 3 83
5 4 317
... ... ...
46 45 144
47 46 180
48 47 645
sheet.iloc[2:49, [0, 2]].values #Konvertieren Sie das Pandas-Format in das Numpy-Format
array([[1, 64],
       [2, 136],
       [3, 83],
       [4, 317],
       [5, 87],
       ...,
       [46, 180],
       [47, 645]], dtype=object)

Färben Sie die Karte von Japan mit Excel-Daten

Datenverarbeitung

values = sheet.iloc[2:49, [0, 2]].values

Festlegen, wie gemalt werden soll

Der Code unten

Gibt den Farbcode von aus.

import numpy as np
def color_scale(value, max_value):
    try:
        v = value / max_value
        if v >= 1.0:
            return (255, 0, 0)
        elif v <= 0:
            return (0, 0, 255)
        elif v > 0.5:
            red = 1
            green = int(255 * (2 - 2 * v))
            blue = 0
            return (red, green, blue)
        else:
            red = int(255 * 2 * v)
            green = int(255 * 2 * v)
            blue = int(255 * (1 - 2 * v))
            return (red, green, blue)
    except:
        return (255, 255, 255)

Das Anwendungsbeispiel sieht folgendermaßen aus.

for v in [0.0, 0.2, 0.5, 0.7, 1.0, "string"]:
    print(v, color_scale(v, 1))
0.0 (0, 0, 255)
0.2 (102, 102, 153)
0.5 (255, 255, 0)
0.7 (1, 153, 0)
1.0 (255, 0, 0)
string (255, 255, 255)

Finden Sie den Maximalwert

max_value = np.max([a for a in values[:, 1] if not isinstance(a, str)])

Entscheide die Farbe für jede Präfektur

data ={}
for code, value in zip(values[:, 0], values[:, 1]):
    data[code] = color_scale(value, max_value)

Färben Sie die Karte von Japan

%matplotlib inline
import matplotlib.pyplot as plt
from pylab import rcParams
 
print(excel.sheet_names[sheet_index])
plt.imshow(picture(data))

Bevölkerungsdichte [2018]

output_21_2.png

Zusammenfassung

Es sieht so aus, wenn es mit verschiedenen Daten gemalt wird. Der Ort, an dem keine Daten vorhanden sind, ist fest weiß.

sheet_index = 60
print(excel.sheet_names[sheet_index])
sheet = excel.parse(excel.sheet_names[sheet_index], header=None)
values = sheet.iloc[2:49, [0, 2]].values
max_value = np.max([a for a in values[:, 1] if not isinstance(a, str)])

data ={}
for code, value in zip(values[:, 0], values[:, 1]):
    data[code] = color_scale(value, max_value)

plt.imshow(picture(data))

Rasierte Landwirtschaft [2016]

output_22_2.png

Recommended Posts

Öffnen Sie eine Excel-Datei in Python und färben Sie die Karte von Japan
Rufen Sie die Formel in der Excel-Datei als Zeichenfolge in Python ab
Ein leicht verständlicher Vergleich der grundlegenden Grammatik von Python und Go
Ändern Sie die Sättigung und Helligkeit von Farbspezifikationen wie # ff000 in Python 2.5
Vergleichen Sie die Geschwindigkeit von Python Append und Map
Ich möchte einen Teil der Excel-Zeichenfolge mit Python einfärben
Das einfachste Python-Memo in Japan (Klassen und Objekte)
Die Geschichte von FileNotFound im Python open () -Modus = 'w'
[Golang] Geben Sie ein Array für den Wert der Karte an
Verwenden wir die offenen Daten von "Mamebus" in Python
Das Ergebnis der Erstellung eines Kartenalbums italienischer Jungvermählten in Python und dessen Weitergabe
[Python] Ändern Sie die Textfarbe und Hintergrundfarbe eines bestimmten Schlüsselworts in der Druckausgabe
Geben Sie für jede Datei die angegebene Tabelle der Oracle-Datenbank in Python in Excel aus
[Python] Öffnen Sie die CSV-Datei in dem von Pandas angegebenen Ordner
Holen Sie sich den MIME-Typ in Python und bestimmen Sie das Dateiformat
Bearbeiten Sie die Zwischenablage in Python und fügen Sie die Tabelle in Excel ein
[Hinweis] Import von Dateien in das übergeordnete Verzeichnis in Python
Lesen Sie die VTK-Datei und zeigen Sie die Farbkarte mit Jupiter an.
[Tipps] Probleme und Lösungen bei der Entwicklung von Python + Kivy
Google sucht mit Python nach der Zeichenfolge in der letzten Zeile der Datei
Die Geschichte von Python und die Geschichte von NaN
Speichern Sie die Binärdatei in Python
[Python] Passen Sie den Standard für die Farbkarte an
Die Geschichte des "Lochs" in der Akte
Zählen Sie die Anzahl der thailändischen und arabischen Zeichen in Python gut
Wie Sie die interne Struktur eines Objekts in Python kennen
Ich habe einen AttributeError erhalten, als ich die offene Methode in Python verspottet habe
Funktion zum Öffnen einer Datei in Python3 (Unterschied zwischen open und codecs.open und Geschwindigkeitsvergleich)
Holen Sie sich den Titel und das Lieferdatum von Yahoo! News in Python
Geben Sie die Farbe in der matplotlib 2D-Karte an
Überprüfen Sie das Verhalten des Zerstörers in Python
Die Geschichte eines Fehlers in PyOCR
Überprüfen Sie die Existenz der Datei mit Python
Erstellen Sie schnell eine Excel-Datei mit Python #python
Schreiben Sie die O_SYNC-Datei in C und Python
Das Ergebnis der Installation von Python auf Anaconda
Lesen Sie die Datei Zeile für Zeile mit Python
Lesen Sie die Datei Zeile für Zeile mit Python
Grundlagen zum Ausführen von NoxPlayer in Python
Auf der Suche nach dem schnellsten FizzBuzz in Python
[Python] Ruft den Zeichencode der Datei ab
[Python] Lesen Sie die angegebene Zeile in der Datei
Projekt Euler # 1 "Vielfaches von 3 und 5" in Python
Python open und io.open sind gleich
[Python3] Grundlegendes zu Dateivorgängen
Der Dateiname war in Python schlecht und ich war süchtig nach Import
Ich habe ein Programm erstellt, um die Größe einer Datei mit Python zu überprüfen
Ein Beispiel für die Antwort auf die Referenzfrage der Studiensitzung. Mit Python.
Verschiedene Möglichkeiten, die letzte Zeile einer CSV-Datei in Python zu lesen
Testen Sie das Hochladen von Bildern, indem Sie in Python erstellen, ohne Dummy-Bilddateien in Django zu platzieren
Geben Sie die Anzahl der CPU-Kerne in Python aus
[Python] Sortieren Sie die Liste von pathlib.Path in natürlicher Reihenfolge
Sie werden in 100 Tagen Ingenieur - 29. Tag - Python - Grundlagen der Python-Sprache 5
DL, Bytewert und Löschen der Datei in Python3