Detaillierte Python-Techniken für die Datenformung (1)

Formen Sie die Daten für die Analyse

In Wirklichkeit beträgt die Aufmerksamkeit und das Interesse der Menschen an der Datenaufbereitung, -berechnung und -visualisierung etwa 1: 4: 5, während das Verhältnis in der Praxis etwa 6: 2: 2 beträgt. Dies ist nur eine Sensation, aber kann man mit Sicherheit sagen, dass der größte Teil der Analyse eine Vorbereitung für das Einrichten der Daten in einem berechenbaren Zustand ist? Aus diesem Grund werde ich heute eine Reihe von Techniken schreiben, die ich häufig in Python verwende und die die Benutzerfreundlichkeit als Klebesprache hervorheben.

Laden und Entladen von JSON-Objekten

Der Inhalt ist nichts Neues, aber das Konvertieren des JSON-Formats ist eine übliche Vorverarbeitung. Ich werde es als Memo hinterlassen, damit ich es nicht vergesse.

In Python können JSON-formatierte Datenstrukturen durch Import json verarbeitet werden. Beim Laden wird es zu einem Datenformat für Wörterbücher (Hash in anderen Sprachen), das auch im JSON-Format vorliegen kann.

Laden von JSON-Daten aus einer CSV-Datei

Angenommen, eine CSV-Datei ist durch Schlüssel und Wert getrennt. Angenommen, der Wertteil enthält Textdaten im JSON-Format, die von einem anderen System serialisiert wurden. Zum Laden können Sie die Zeichenfolge teilen, indem Sie ein Trennzeichen wie folgt angeben und JSON mit der Methode json.load als Objekt vom Typ Wörterbuch laden.

import json

file = open(self.filename, 'r')
for line in file:
    key, value = line.rstrip().split(",")
    dic = json.loads(value)

Schreiben Sie ein JSON-Objekt in eine Datei

Wenn Sie dagegen ein Objekt vom Typ Wörterbuch in eine Datei oder eine Standardausgabe im JSON-Format schreiben, verwenden Sie json.dumps wie folgt.

import json

json_obj = json.dumps(dic)
print(json_obj)

Es ist einfach.

Verwendung von Argumenten und Instanzvariablen

Die an das Python-Skript übergebenen Argumente werden in sys.argv gespeichert.

import sys

if __name__ == '__main__':
    argsmin = 1
    if len(sys.argv) > argsmin:
        some_instance = SomeClass(sys.argv)
        some_instance.some_method()

Wenn Sie es beim Initialisieren der Instanz übergeben, können Sie es verwenden, indem Sie das Argument in der Instanzvariablen speichern.

class SomeClass:
    def __init__(self, args):
        self.filename = args[1]

Private Methode

Python geht normalerweise davon aus, dass eine Methode eine private Methode ist, indem ihr ein _ vorangestellt wird.

    def self._some_method(self):
        ...

Dies kann sicherlich nicht als some_instance.some_method bezeichnet werden. Sie können es jedoch explizit mit some_instance._some_method aufrufen. Es ist gewohnheitsmäßig und nicht funktional privat.

Verwenden Sie zwei __, um zu verhindern, dass es funktional aufgerufen wird.

    def self.__some_method(self):
        ...

Trotzdem gibt es eine schwierige Möglichkeit, es aufzurufen, und die Testbarkeit der privaten Methode wird verringert, so dass ich es nicht sehr empfehle. Die Tatsache, dass Sie eine private Methode aufrufen können, ist beim Testen mit anderen Worten einfacher.

Testrahmen

Es gibt viele verschiedene Test-Frameworks für Python, aber Nase ist relativ einfach zu verwenden. Stellen Sie sich zunächst eine Methode vor, die sich wie folgt verhält.

import factorial
factorial.factorial(10)
#=> 3628800

Zu testender Code

Angenommen, dieser Python-Code heißt factorial.py und die Methodenimplementierung sieht folgendermaßen aus.

def factorial(n):
    if n==1:
        return 1
    else:
        return n * factorial(n-1)

Testcode

Um dies zu testen, erstellen Sie eine Datei mit dem Namen test_factorial.py und schreiben Sie den Testcode wie folgt:

from nose.tools import * #Laden des Testframeworks
from factorial import *  #Testcode wird geladen

def test_factorial(): #Testen der Fakultätsmethode
    i=10
    e=3628800
    eq_(e,factorial(i)) #Überprüfung

Das Obige entspricht äq_ (3628800, Fakultät (10)). Die eq_-Methode überprüft, ob die Werte gleich sind.

Führen Sie den Test aus

Geben Sie nach der Implementierung des Testcodes den Befehl nosetests in der Shell aus.

$ nosetests
.
----------------------------------------------------------------------
Ran 1 test in 0.008s

OK

Zusammenfassung

Es ist einfach, viel Zeit damit zu verbringen, stabile Daten vorzubereiten. Dieses Mal habe ich die Techniken, die in solchen Arbeiten häufig verwendet werden, als Memorandum zusammengefasst.

Recommended Posts

Detaillierte Python-Techniken für die Datenformung (1)
Detaillierte Python-Techniken für die Datenformung (2)
Python-Kurs für datenwissenschaftlich-nützliche Techniken
Python für die Datenanalyse Kapitel 4
Techniken zum Sortieren in Python
Python für die Datenanalyse Kapitel 2
Python für die Datenanalyse Kapitel 3
Vorverarbeitungsvorlage für die Datenanalyse (Python)
Datenformatierung für Python / Farbdiagramme
Python-Visualisierungstool für die Datenanalyse
Zusammenfassung nützlicher Techniken von Scrapy in Python
Verwendung von "deque" für Python-Daten
[Wettbewerbsprogrammierung] [Python3] Notwendiges Wissen für sich
Memo Nr. 4, dass Python-Anfänger "Detaillierte Erklärung der Python-Grammatik" lesen
Python [für mich]
[CovsirPhy] COVID-19 Python-Paket für die Datenanalyse: Laden von Daten
Datenanalyse Python
Memo Nr. 3, dass Python-Anfänger "Detaillierte Erklärung der Python-Grammatik" lesen
Memo Nr. 1, dass Python-Anfänger "Detaillierte Erklärung der Python-Grammatik" lesen
Zeigen Sie FX (Forex) Daten Candle Stick in Python an
Memo Nr. 2, dass Python-Anfänger "Detaillierte Erklärung der Python-Grammatik" lesen
Memo Nr. 7, dass Python-Anfänger "Detaillierte Erklärung der Python-Grammatik" lesen
Memo Nr. 6 für Python-Anfänger zum Lesen von "Detaillierte Erklärung der Python-Grammatik"
Memo Nr. 5, dass Python-Anfänger "Detaillierte Erklärung der Python-Grammatik" lesen
[Python] Daten lesen
Lassen Sie uns Covid-19 (Corona) -Daten mit Python analysieren [Für Anfänger]
Datenanalyse zur Verbesserung von POG 1 ~ Web Scraping mit Python ~
Erstellen Sie Ihre eigenen Big Data in Python zur Validierung
Dimensionsreduktion hochdimensionaler Daten und zweidimensionales Plotverfahren
[Für Anfänger] So studieren Sie den Python3-Datenanalysetest
Liste der Python-Bibliotheken für Datenwissenschaftler und Dateningenieure
Kenntnisse und Studienmethoden für zukünftige Datenanalysten erforderlich
[Python] Misst und zeigt die für die Verarbeitung erforderliche Zeit an
[CovsirPhy] COVID-19 Python-Paket für die Datenanalyse: SIR-F-Modell
Python-Übung für Anfänger # 1 [Grundlegende Datentypen / If-Anweisungen]
[CovsirPhy] COVID-19 Python-Paket für die Datenanalyse: S-R-Trendanalyse
[CovsirPhy] COVID-19 Python-Paket für die Datenanalyse: SIR-Modell
[CovsirPhy] COVID-19 Python-Paket für die Datenanalyse: Parameterschätzung
Datenanalyse mit Python 2
Python-Grundlagen ② für Anweisung
Datenanalyse Übersicht Python
Über Python für ~ (Bereich)
Techniken zum Testen von Code?
Datenbereinigung mit Python
Python Lehrbuch für Anfänger
Toolchain für Python für Android
Python-Datenanalysevorlage
[Python-Tutorial] Datenstruktur
[Python] Numpy Daten sortieren
Datenanalyse mit Python
OpenCV für Python-Anfänger
Installieren Sie Python (für Windows)
[Python] für Anweisungsfehler
Wartung der Python-Umgebung für Projekte
[CovsirPhy] COVID-19 Python-Paket für die Datenanalyse: Szenarioanalyse (Parametervergleich)
[In kürzester Zeit verstehen] Python-Grundlagen für die Datenanalyse
Welches sollte ich für die Datenanalyse studieren, R oder Python?
Stilvolle Technik zum Einfügen von CSV-Daten in Excel mit Python
Python-Code zum Schreiben von CSV-Daten in den DSX-Objektspeicher