Dieser Artikel ist der 18. Tag des nächsten (Lifull) Adventskalenders 2016.
Hallo, das ist Ninomiya von Digital Marketing U.
Vor kurzem haben mehrere Abteilungen des Unternehmens Projekte erstellt, die Python für die statistische Verarbeitung und numerische Berechnungen verwenden.
Bisher wurde die R-Sprache hauptsächlich von @wakuteka aus derselben Gruppe verwendet, und Dokumente und Know-how wurden als solche organisiert.
Es scheint, dass es auch einen Bedarf gab.
(Anstatt die R-Sprache zu verschlechtern, ist sie natürlich interaktiv und verwendet eine Gruppe von Bibliotheken namens tidyverse. Die R-Sprache ist für die Analyse und Visualisierung einfacher zu verwenden. Die Werkzeuge werden verwendet.)
Ich benutze Python als Hobby und hatte die Gelegenheit, an mehreren Projekten in Form von Reviews und Ratschlägen zu arbeiten (was übertrieben ist).
Ich möchte das in diesem Prozess gewonnene Wissen und die Artikel, auf die ich mich bezog, zusammenfassen.
Da wir jedoch durch Versuch und Irrtum vorgegangen sind, gibt es möglicherweise einen besseren Weg, und der Inhalt des Artikels deckt nicht die gesamte Entwicklung ab. Wenn Sie einen solchen Punkt finden, wäre ich Ihnen dankbar, wenn Sie mich in den Kommentaren informieren könnten.
Der Artikel "Entwicklungsumgebung, die mit der Absicht erstellt wurde, Python ernsthaft zu schreiben" war hilfreich.
Eine bekannte Python-Distribution namens Anaconda, die auch eine Bibliothek für Statistiken enthält, wird in der Produktion nicht verwendet. (Ich benutze es in der Entwicklungs- / Analyseumgebung.)
Wie Sie im Artikel "Physenv erforderlich oder nicht" sehen können.
Ich habe Anacondas / bin auf den Pfad gesetzt, aber die Tools von Anaconda (openssl / curl / python) verdecken die Tools des Betriebssystems. Außerdem ist es in BASH zu vorausgesetzt, und wenn Sie zsh verwenden, funktioniert es nur, wenn Sie es auf verschiedene Arten beheben.
Dies liegt daran, dass ich mir Sorgen über das Verhalten hier im tatsächlichen Betrieb gemacht habe.
Ich musste es überprüfen, also habe ich die Codierungsstandards und das Schreiben von DocStrings erneut studiert.
Wir haben es möglich gemacht, abteilungsspezifische numerische Berechnungen mit pip mithilfe des Git-Repositorys für Gruppen zu installieren.
Zu dieser Zeit habe ich auf diese Artikel verwiesen.
Siehe PEP8 und Google Python Style Guide. Ich denke, es wird.
Es ist jedoch schwierig, den Codierungsstandard visuell zu überprüfen, so dass es schwierig ist, ihn von Hand zu reparieren. Daher flake8 und [autopep8](https: //pypi.python) Ich benutze auch .org / pypi / autopep8) nach Bedarf. PEP8 ist jedoch ein relativ strenger Kodierungsstandard, weshalb wir gegebenenfalls mit der Konsultation fortfahren.
Hier habe ich auf den folgenden Artikel verwiesen.
Ich habe auch DocStrings im Google-Stil geschrieben, um das Verständnis der Eingabe und Ausgabe von Funktionen und Methoden zu erleichtern. Es scheint auch andere Numpy-Stile zu geben.
Wenn Sie Typanmerkung mit Python 3.5 oder höher verwenden,
def function_with_pep484_type_annotations(param1: int, param2: str) -> bool:
"""Example function with PEP 484 type annotations.
Args:
param1: The first parameter.
param2: The second parameter.
Returns:
The return value. True for success, False otherwise.
"""
Dies ist der Fall, wenn keine Typanmerkung verwendet wird.
def function_with_types_in_docstring(param1, param2):
"""Example function with types documented in the docstring.
Args:
param1 (int): The first parameter.
param2 (str): The second parameter.
Returns:
bool: The return value. True for success, False otherwise.
"""
In dem von mir überprüften Code gab es jedoch eine Funktion, die mehrere Werte mit Tupel zurückgab, aber (soweit ich dies untersuchte) DocStrings im Google-Stil schien das Schreiben nicht zu unterstützen, das mehrere Werte mit Returns zurückgibt. .. Schreiben Sie auf der Grundlage dieser Stapelüberlaufantwort wie folgt Ich hab es geschafft.
import pandas as pd
def _postprocess_data(output_data, market):
"""Formatieren Sie in Daten für die Alarm- und Dateiausgabe
Args:
output_data (pd.DataFrame):Berechneter Datenrahmen
market (str):Name des Immobilienmarktes
Returns:
tuple:Gibt die folgenden Werte als mehrere Werte zurück
- output_data (pd.DataFrame):Ausgabedaten
- monthly_data (pd.DataFrame):Monatliche Daten
"""
Ich habe nicht versucht, Typanmerkungen und statisches Parsen mit mypy durchzuführen, aber ich werde die Gelegenheit nutzen, es zu versuchen.
Es war ein kleines Projekt, also schrieb ich einige einfache Tests mit unittest.
Abgesehen von unittest es scheint, dass es einige Frameworks gibt, werde ich auch dafür eine Gelegenheit schaffen.
Im Moment arbeite ich an etwas wie "Einfügen einer Funktion, die mit einem Jupyter-Notizbuch ausprobiert und fehlerhaft war, in einen Editor". Ich möchte es bei Bedarf mit TDD (so ähnlich) richtig verwenden können.
Wenn Sie Datenanalysen mit Python durchführen, werden Sie wahrscheinlich Pandas verwenden, um einen Datenrahmentyp wie die R-Sprache einzuführen.
In der R-Sprache können Bibliotheken wie dplyr und tidyr den Fluss der Datenverarbeitung mithilfe von Pipeline-Operatoren präzise ausdrücken, aber es scheint etwas gewöhnungsbedürftig zu sein, dasselbe mit Pandas zu tun. (Im Gegensatz zu R, das alles in einem Datenrahmen ausdrückt, wird versucht und fehlerhaft, es ordnungsgemäß mit dem Wörterbuchtyp zu verwenden.)
Dieser Artikel bietet jedoch eine gute Möglichkeit, Pandas zu schreiben. Lesen Sie ihn daher bitte, wenn Sie ihn verwenden.
Hier ist eine kurze Zusammenfassung der Ergebnisse von Versuch und Irrtum (oder in Arbeit) in einem Python-Projekt unter Verwendung einer Datenanalysebibliothek. Ich hoffe, es hilft jemandem beim Lesen.
Der Inhalt des Artikels deckt nicht die gesamte Entwicklung ab. Wenn Sie einen solchen Punkt finden, wäre ich Ihnen dankbar, wenn Sie mich in den Kommentaren informieren könnten.
Bitte beachten Sie auch weiterhin unseren Adventskalender.
Recommended Posts