[Abgeschlossene Version] Versuchen Sie, die Anzahl der Einwohner der Stadt anhand der Adressliste mit Python herauszufinden

Einführung

Qiita ist unglaublich, nicht wahr?

Vorheriger Artikel (https://qiita.com/kkhouse/items/d8ff2c67cef686a508f8) Also, wenn ich ein Amateur war, aber den Code veröffentlicht habe, Herr konandoiruasa (https://qiita.com/konandoiruasa) Ich habe den Korrekturcode von erhalten.

Ich bin den Amateuren dankbar, die gerade damit begonnen haben.

Deshalb habe ich versucht, das modifizierte hochzuladen!

Abschlusscode

main.py


import csv
import openpyxl
import sys
import os
import openpyxl as px


aggregate_list =["Toda-gun","Shiogama City","Shiogama City","Oshika-Pistole","Kami-Pistole","Karita-Pistole","Iwanuma City","Nanagahama Stadt","Rifu Stadt","Kurihara Stadt","Kurokawa-Pistole","Shibata-Pistole","Ishimaki Stadt","Miyagino Ward","Wakabayashi Ward","Aoba Ward","Izumi Ward","Taichi Ward","Taga Schloss","Osaki City","Tomai City","Higashi Matsushima Stadt","Tomiya City","Motoyoshi-Pistole","Stadt Natori","Watari-Pistole","Andere"]

# ~~Start der CSV → XLSX-Konvertierung~~~
wb = openpyxl.Workbook()
ws = wb.active
query_word = sys.argv[1] 

f = open("./data_csv/{}.csv".format(query_word))
reader = csv.reader(f, delimiter=":")
for row in reader:
  ws.append(row)
f.close()

if not os.path.exists("./data_xlsx"):
  os.makedirs("./data_xlsx")
wb.save("./data_xlsx/{0}{1}.xlsx".format(query_word,"_Aggregat"))
# ~~csv→xlsx convert end~~~

# ~~xlsx Extraction start~~
folder = "data_xlsx"

filePath = []
for root,dirs,files in os.walk(folder):
  for fname in files:
    fnamePath = os.path.join(root,fname)
    if fnamePath.find(".xlsx")!= -1:
      filePath.append(fnamePath)
    if filePath ==[]:
      print("keine Daten verfügbar!")
xlsx_files_list = [s for s in filePath if query_word in s]



#Holen Sie sich das erstellte xlsx
wb = px.load_workbook(xlsx_files_list[0])
ws = wb[wb.sheetnames[0]]

#Listen Sie alle Adressen in xlsx auf
adress_list = []

table = [0] * len(aggregate_list)

for i in range(ws.max_row):
  temp = ws.cell(row=i+1, column=1).value #Weil es oft herauskommt
  adress_list.append(temp)

  for j, name in enumerate(aggregate_list):
    if name in temp:
      table[j] += 1 #Zähle zum entsprechenden Ort
      break
  else:
    table[26] += 1 #Andere

#Stellen Sie einen Salztopf und eine Salzschale zusammen
table[1] = table[1]+table[2]
table.pop(2)


for i,j in zip(list(range(1,3)),aggregate_list):
  ws.cell(row=i, column=7).value = j
for i,j in zip(list(range(3,27)),aggregate_list[3:]):
  ws.cell(row=i, column=7).value = j
for i,g in zip(list(range(1,28)),table):
  ws.cell(row=i, column=8).value = g

wb.save("./data_xlsx/{0}{1}.xlsx".format(query_word,"_Aggregat"))

Ich denke, der Code ist anwendbarer als beim letzten Mal.

Apropos

In diesem Beispiel wird der folgende Code benötigt, um Shiogama und Shiogama in derselben Spalte zu zählen.

main.py


#Stellen Sie einen Salztopf und eine Salzschale zusammen
table[1] = table[1]+table[2]
table.pop(2)
・
・
for i,j in zip(list(range(1,3)),aggregate_list):
  ws.cell(row=i, column=7).value = j
for i,j in zip(list(range(3,27)),aggregate_list[3:]):
  ws.cell(row=i, column=7).value = j

Wenn die aggregierte Liste keine doppelten Stadt- / Stationsnamen enthält

main.py


for i,j in zip(list(range(1,len(aggregate_list)),aggregate_list):
  ws.cell(row=i, column=7).value = j

Sie können auch addieren, indem Sie es auf reparieren. (Vielleicht können Sie, wenn Sie Ihr Bestes geben, den Code so schreiben, dass der Unterschied im Kanji der Stadt und der Gemeinde standardmäßig gezählt werden kann, aber es gibt noch andere Dinge, die ich bisher machen möchte.)

Was ich persönlich gelernt habe

Ich werde die Verwendung von OpenPyXL weglassen, da es herauskommt, wenn Sie es überprüfen. Ich habe den folgenden Code persönlich gelernt.

main.py


folder = "data_xlsx"

filePath = []
for root,dirs,files in os.walk(folder):
  for fname in files:
    fnamePath = os.path.join(root,fname)
    if fnamePath.find(".xlsx")!= -1:
      filePath.append(fnamePath)
    if filePath ==[]:
      print("keine Daten verfügbar!")
xlsx_files_list = [s for s in filePath if query_word in s]

os.walk ()

Wie benutzt man https://www.sejuku.net/blog/63816 Diese Seite ist leicht zu verstehen.

Rufen Sie die XLSX-Datei ab, indem Sie die Ordnerstruktur stapelweise aus dem Verzeichnis abrufen. Wenn das Programm ausgeführt wird und die xlsx-Datei in den im Terminal eingegebenen Argumenten enthalten ist, wird der folgende Code ausgeführt. os.walk ist bequem.

Schließlich

Ich dachte, es wurde geschrieben, aber es ist möglicherweise besser, die Eingabe zu verwenden und den Dateinamen einzugeben, damit die Aggregation abgeschlossen ist. Ich werde es bald tun. .. Dank dessen habe ich viel über die Verwendung von Openpyxl gelernt. Ich bin immer noch ein Amateur, aber lasst uns unser Bestes geben.

Verweise: ・ Https://www.sejuku.net/blog/63816 ・ Aus dem Kommentar von konandoiruasa (https://qiita.com/konandoiruasa)

Recommended Posts

[Abgeschlossene Version] Versuchen Sie, die Anzahl der Einwohner der Stadt anhand der Adressliste mit Python herauszufinden
Python - Ermitteln Sie die Anzahl der Gruppen im regulären Ausdruck
Wie identifiziere ich das Element mit der geringsten Anzahl von Zeichen in einer Python-Liste?
So zählen Sie die Anzahl der Vorkommen jedes Elements in der Liste in Python mit der Gewichtung
So erhalten Sie mit Python eine Liste der Dateien im selben Verzeichnis
Ich habe versucht, die Anzahl der mit dem Coronavirus infizierten Personen unter Berücksichtigung der Auswirkung des Verzichts auf das Ausgehen vorherzusagen
Versuchen Sie, COVID-19 Tokyo-Daten mit Python zu kratzen
So finden Sie die optimale Anzahl von Clustern für k-means
Versuchen Sie, die Funktionsliste des Python> os-Pakets abzurufen
Finden Sie die scheinbare Breite einer Zeichenfolge in Python heraus
Holen Sie sich die Anzahl der spezifischen Elemente in der Python-Liste
[Homologie] Zählen Sie mit Python die Anzahl der Löcher in den Daten
Versuchen Sie, den Betrieb von Netzwerkgeräten mit Python zu automatisieren
[Python] Programmieren, um die Nummer von a in einer Zeichenfolge zu finden, die eine bestimmte Anzahl von Malen wiederholt.
Wie man die Anzahl der GPUs aus Python kennt ~ Hinweise zur Verwendung von Multiprocessing mit pytorch ~
Ich habe versucht, den Trend der Anzahl der Schiffe in der Bucht von Tokio anhand von Satellitenbildern zu ermitteln.
Übergeben des Ausführungsergebnisses eines Shell-Befehls in einer Liste in Python (nicht blockierende Version)
Versuchen Sie, die Thread-Liste der Nachrichten (Abneigung) mit Python zu erhalten.
Geben Sie den Inhalt von ~ .xlsx im Ordner mit Python in HTML aus
Von der Einführung von JUMAN ++ bis zur morphologischen Analyse von Japanisch mit Python
Ändern Sie die aktive Version in Pyenv von Anaconda in einfaches Python
Versuchen Sie, die Position des Senders aus dem Funkwellenausbreitungsmodell mit Python [Wi-Fi, Beacon] zu berechnen.
Versuchen Sie, sich mit Python bei qiita anzumelden
[Python] Probieren Sie pydash der Python-Version von lodash aus
Python Amateur versucht die Liste zusammenzufassen ①
So ermitteln Sie die Anzahl der CPUs ohne den Befehl sar
Generieren Sie eine Liste mit der Anzahl der Tage im aktuellen Monat.
[Python] So fügen Sie eine beliebige Anzahl von Standardeingaben in die Liste ein
Versuchen Sie, die Höhendaten des National Land Research Institute mit Python abzubilden
[Einführung in Python] So sortieren Sie den Inhalt einer Liste effizient mit Listensortierung
Erhalten Sie eine Liste der Ergebnisse der Parallelverarbeitung in Python mit Starmap
Den Namen der Methode, die ihn aufgerufen hat, finden Sie in der Python-Methode
So übergeben Sie das Ergebnis der Ausführung eines Shell-Befehls in einer Liste in Python
Geben Sie die Anzahl der CPU-Kerne in Python aus
Test von emacs-org parser orgparse für Python
[Python] Sortieren Sie die Liste von pathlib.Path in natürlicher Reihenfolge
So finden Sie heraus, welche Art von Datei in S3 in Python gespeichert ist
Finden Sie heraus, wie Sie eine Datei mit einer bestimmten Anzahl von Zeilen gleichmäßig teilen können
Versuchen Sie, das Mensch-Maschine-Diagramm mit Python zu lösen
Berechnen Sie die Gesamtzahl der Kombinationen mit Python
Kopieren Sie die Liste in Python
Finden Sie die Anzahl der Tage in einem Monat
So ermitteln Sie den Koeffizienten der ungefähren Kurve, die in Python durch die Scheitelpunkte verläuft
Probieren Sie einen datengesteuerten Test mit Selenium Python Bindings und py.test aus
Finden Sie die Lösung der Gleichung n-ter Ordnung mit Python
Finden Sie den Tag nach Datum / Uhrzeit heraus
Versuchen Sie, die Position eines Objekts auf dem Schreibtisch (reales Koordinatensystem) anhand des Kamerabilds mit Python + OpenCV zu messen
Ein Kommentar, den ich auf Google+ gesehen habe, war: "Gibt es eine einfache Möglichkeit herauszufinden, welches Zahlenelement einer Liste in Python maximal / minimal ist?" Die erste Zeile, die ich mir ausgedacht habe, war der Code in der ersten Zeile, aber ist die zweite Zeile besser?
Verwenden Sie Ruby und Python, um die Wahrscheinlichkeit zu ermitteln, dass eine Karte mit einer natürlichen Zahl von 1 bis 100 ein Vielfaches von 3 und kein Vielfaches von 5 ist.
Liste der Tools, mit denen Sie auf einfache Weise die Emotionsanalyse japanischer Sätze mit Python ausprobieren können (versuchen Sie es mit Google Colab).
Eine Einführung in die GUI-Software der Klassenplattform, die mit Python / Tkinter erstellt wurde! (Und viele Try and Error)! (Während des Schreibens)
Ich habe untersucht, wie der Arbeitsablauf mit Excel x Python optimiert werden kann
Vom Anfangszustand von CentOS8 bis zum Ausführen von PHP Python Perl Ruby mit Nginx
Ich habe untersucht, wie der Arbeitsablauf mit Excel x Python ④ optimiert werden kann
Versuchen Sie, mit matplotlib aus den Daten von "Schedule-kun" eine Kampfaufzeichnungstabelle zu erstellen.
Ich habe versucht herauszufinden, wie der Arbeitsablauf mit Excel x Python optimiert werden kann