Ich habe letzte Woche ein wenig über Detaillierte Python-Techniken, die für die Datenformatierung erforderlich sind erklärt, aber es gibt noch einige andere Punkte, die zu beachten sind.
Insbesondere wenn Sie versuchen, Daten mit D3.js wie gestern zu visualisieren, müssen Sie ein JSON-Dataset generieren. Sie müssen jedoch genau wissen, welche Art von Datenstruktur das Dataset hat. nicht.
Es wäre schön, wenn Sie eine Methode wie Sprache zum Kompilieren und Ausführen verwenden könnten, mit der Sie die IDE auf Fehler überprüfen, Fehler beheben, bis sie abgeschlossen sind, und sie dann ausführen könnten. Bei JavaScript dauert es jedoch in der Regel einige Zeit, bis die Warnmeldung zur wahren Ursache gelangt, die bei der Ausführung im Browser nicht wie erwartet angezeigt wird. Ich denke, das liegt an der Ausführungsumgebung, der Art und dem Format der Daten oder einem kleinen Fehler im Code oder daran, dass das Isolieren einige Zeit in Anspruch nimmt.
Aus diesem Grund kann das korrekte Verstehen des Formats des Datensatzes und das Schreiben von Komponententests zur Sicherstellung der Genauigkeit zu Zeiteinsparungen führen. Es ist nüchtern und langwierig, aber es ist sehr wichtig, dass Sie es nicht auslassen. Es ist eine Prozedur.
Betrachten Sie beispielsweise die Visualisierung von Zeitreihenprotokolldaten. Zeit ist endlos kontinuierliche Information ohne Unterbrechungen. Wenn Sie dies mit der Schiebeleiste verschieben und die Änderung der Daten aufgrund des Zeitübergangs anzeigen möchten, ändern Sie die Skalierungsstufe und die Intervallskala. Eine übliche Technik ist die Konvertierung in.
Angenommen, Sie möchten die Anzahl der Kunden für 4 Tage von 7/22 bis 7/25 anzeigen. Konvertiert Datum und Uhrzeit des Menschen mit UNIX-Zeit, um sicherzustellen, dass die Entfernungsskala gleichmäßig verteilt ist. ..
Menschliches Datum und Uhrzeit | UNIX-Zeit |
---|---|
20140722 | 1404226800 |
20140723 | 1404313200 |
20140724 | 1404399600 |
20140725 | 1404486000 |
Um den täglichen Übergang auf diese Weise zu visualisieren, haben wir eine Funktion vorbereitet, um das Datum und die Uhrzeit des Menschen auf der linken Seite in die UNIX-Zeit umzuwandeln. In Python gibt time.mktime die UNIX-Zeit als Gleitkommatyp zurück.
def to_unixtime(self, d):
# time.mktime(2014,07,22,0,0,0,0,0,0)Machen
return int(time.mktime((int(d[0:4]),int(d[5:6]),int(d[7:8]),0,0,0,0,0,0)))
Im obigen Beispiel müssen wir nur die tägliche Entfernungsskala finden, also haben wir 0 auf den Zeitteil festgelegt. Es ist besser, es ein wenig weiter zu verbessern, wenn der Abstand in Einheiten von 1 Stunde, 10 Minuten usw. eingestellt wird. Leser sollten darüber nachdenken, was zu tun ist.
In der Welt von JavaScript ist es außerdem üblich, die Zeit in Einheiten von 1/1000 Sekunden zu verarbeiten. Vergessen Sie nicht, die Zahl bei der Konvertierung in JSON mit 1000 zu multiplizieren.
Die Konvertierung vom UNIX-Zeitstempel in das Datum und die Uhrzeit des Menschen erfolgt wie folgt.
now = 1406255406992 / 1000
datetime.datetime.fromtimestamp(now)
#=> datetime.datetime(2014, 7, 25, 11, 30, 6, 992000)
Betrachten Sie beispielsweise das folgende Datenformat. Verschachtelter Wörterbuchtyp, allgemein als assoziatives Array bezeichnet.
{1404399600.0: {'a': 1, 'b': 2}, 1404486000.0: {'c': 3, 'd': 4}}
Wenn Sie dies in dem gestapelten Flächendiagramm anzeigen möchten, das Gestern eingeführt wurde, können Sie den Code der Haupteinheit verwenden. master / src / models / stackedAreaChart.js) kann das JSON-Datenformat als [mehrdimensionales Array] behandeln (https://github.com/novus/nvd3/blob/master/test/stackedAreaChartTest.html). Ich verstehe. Das Konvertieren von einem Wörterbuchtyp scheint auf den ersten Blick mühsam zu sein, kann jedoch mithilfe der Listeninhaltsnotation von Python kurz beschrieben werden.
[[a*1000,b] for a,b in v.items()]
#=> [[1404399600000.0, {'a': 1, 'b': 2}], [1404486000000.0, {'c': 3, 'd': 4}]]
In der Welt der Mathematik werden alle reellen Zahlen, ganzen Zahlen usw. als universelle Mengen interpretiert. Es ist leicht zu verstehen, wenn Sie daran denken, mit for auf die Elemente der Daten zu verweisen und für jedes eine Projektion zu erhalten. Sie können sehen, dass es der Notation der Mathematik ähnelt.
In Python 3 wurde das Verhalten der Listeneinschlussnotation zu einem Generatorausdruck verbessert, z. B. der folgenden Syntax
[f(x) for x in S if P(x)]
Dies entspricht der Anwendung der Funktion list () auf den Generatorausdruck wie unten gezeigt.
list(f(x) for x in S if P(x))
Heute habe ich die detaillierten Techniken vorgestellt, die häufig bei der Durchführung einfacher Datenkonvertierungen auftreten.
Recommended Posts