Heim >Backend-Entwicklung >Python-Tutorial >Neun häufige Fehler, die Datenwissenschaftler bei der Verwendung von Python machen
Best Practices werden aus Fehlern gelernt. Deshalb haben wir hier einige der häufigsten Fehler zusammengefasst, auf die wir stoßen, und Methoden, Ideen und Ressourcen bereitgestellt, wie wir sie am besten lösen können. 1. Keine virtuellen Umgebungen verwenden Umgebungsisolation ist eine sehr gute Vorgehensweise.
Warum für jedes Projekt eine eigene Umgebung verwenden?
Der erste Grund ist das Problem der Python-eigenen Paketverwaltung. Wir möchten Konflikte zwischen Paketen und Versionen minimieren. Ein weiterer Grund ist, dass unser Code und unsere Abhängigkeiten problemlos an jedem Ort bereitgestellt werden können. Die Verwendung einer virtuellen Umgebung kann von Anaconda oder Pipenv aus beginnen. Wenn Sie tiefer gehen möchten, ist Docker die erste Wahl. 2. Übermäßiger Gebrauch von Jupyter-NotebooksNotebooks eignen sich hervorragend für Bildungszwecke und für schnelle und komplexe Analysearbeiten, dienen aber nicht als gute IDE. Eine gute IDE ist eine echte Waffe bei der Bewältigung datenwissenschaftlicher Aufgaben und kann Ihre Arbeitseffizienz erheblich verbessern. Notizbücher eignen sich hervorragend, um Experimente durchzuführen und die Ergebnisse einfach anderen zu zeigen. Aber es ist fehleranfällig, und wenn es um die Ausführung langfristiger, kollaborativer und bereitstellbarer Projekte geht, ist die Verwendung einer IDE wie VScode, Pycharm, Spyder usw. besser geeignet. 3. Verwenden Sie absolute statt relative Pfade. Das größte Problem bei absoluten Pfaden besteht darin, dass sie nicht bequem bereitgestellt werden können Verzeichnis zum Projektstammverzeichnis, und schließen Sie keine Dateien außerhalb des Projektverzeichnisses in das Projekt ein und verwenden Sie relative Pfade für alle Pfade im Code.import pandas as pd import numpy as np import os #### 错误的方式 ##### excel_path1 = "C:\Users\abdelilah\Desktop\mysheet1.xlsx" excel_path2 = "C:\Users\abdelilah\Desktop\mysheet2.xlsx" mydf1 = pd.read_excel(excel_path1) mydf2 = pd.read_excel(excel_path2) #### 正确的方式 #### DATA_DIR = "data" #将要读取的文件复制到data目录 crime06_filename = "CrimeOneYearofData_2006.xlsx" crime07_filename = "CrimeOneYearofData_2007.xlsx" crime06_df = pd.read_excel(os.path.join(DATA_DIR, crime06_filename)) crime07_df = pd.read_excel(os.path.join(DATA_DIR, crime07_filename))4. Warnungen werden nicht verarbeitetWenn unser Code ausgeführt werden kann, aber seltsame Warnmeldungen erzeugt, sind wir froh, dass der Code endlich ausgeführt werden kann und eine aussagekräftige Ausgabe erhält. Aber müssen wir uns mit diesen Warnungen auseinandersetzen? Zuallererst sind Warnungen selbst keine Fehler, sondern Tipps, die uns auf mögliche Fehler oder Probleme aufmerksam machen. Warnungen werden angezeigt, wenn etwas in Ihrem Code erfolgreich funktioniert, aber möglicherweise nicht wie beabsichtigt. Die häufigsten Warnungen, die mir begegnen, sind „SettingwithCopyWarning“ und „DeprecationWarning“ von Pandas. Der Hauptgrund für SettingwithCopyWarning ist die Warnung, die auftritt, wenn Pandas eine verkettete Zuweisung (Chained Assignment) erkennt. Wir sollten es vermeiden, den Ergebnissen verketteter Indizes Werte zuzuweisen, da dieser Vorgang möglicherweise gemeldet wird oder nicht eine Warnung. Werde berichten. DeprecationWarning weist normalerweise darauf hin, dass Pandas einige Funktionen veraltet hat und Ihr Code bei Verwendung einer späteren Version kaputt geht. Der Rat hier ist nicht, alle Warnungen zu behandeln, aber Sie müssen die Ursachen aller Warnungen verstehen, wissen, welche Warnungen in einem bestimmten Projekt ignoriert werden können und welche Warnungen wichtig sind. Es wird Konsequenzen geben und sollte vermieden werden. 5. Listenverständnis wird nicht verwendet (selten verwendet) Listenverständnis ist eine sehr leistungsstarke Funktion von Python. Viele for-Schleifen können durch Listenverständnisse ersetzt werden, die besser lesbar, pythonischer und schneller sind. Sie können unten einen Beispielcode sehen, der zum Lesen einer CSV-Datei in einem Verzeichnis entwickelt wurde. Wie Sie sehen, ist Tim bei der Verwendung von Listenverständnissen leicht zu pflegen.
import pandas as pd import os DATA_PATH = "data" filename_list = os.listdir(DATA_PATH) #### 不好的方法 ##### csv_list = [] for fileaname in filename_list: csv_list.append(pd.read_csv(os.path.join(DATA_PATH, filename))) #### 建议 #### csv_list = [pd.read_csv(os.path.join(DATA_PATH, filename)) for filename in filename_list] list comprehensions csv_list = [pd.read_csv(os.path.join(DATA_PATH, filename)) for filename in filename_list if filename.endswith(".csv")]6. Verwenden Sie keine Typanmerkungen. Typanmerkungen (oder Typhinweise) sind Möglichkeiten, Variablen Typen zuzuweisen. Wenn die IDE IntelliSense auffordert, kann sie uns den Typ der Indikatorvariablen/des Indikatorparameters mitteilen. Dies kann nicht nur die Geschwindigkeit unserer Entwicklung verbessern, sondern uns auch beim Lesen des Codes sehr helfen.
def mystery_combine(a, b, times): return (a + b) * timesWenn wir so geschrieben sind, kennen wir die Typen von a, b und mal nicht überhaupt
def mystery_combine(a: str, b: str, times: int) -> str: return (a + b) * times# 🎜🎜#Aber durch das Hinzufügen von Typanmerkungen wissen wir, dass a und b Zeichenfolgen und Zeiten ganze Zahlen sind
7. Pandas-Code ist nicht standardisiert
Methodenverkettung ist eine großartige Funktion von Pandas, aber wenn viele Operationen in einer Zeile enthalten sind, kann der Code unbrauchbar werden.
Es gibt einen Trick, der diesen Ansatz noch einfacher macht. Wenn Sie den Ausdruck in Klammern setzen, können Sie für jede Komponente des Ausdrucks eine Zeile verwenden.
var_list = ["clicks", "time_spent"] var_list_Q = [varname + "_Q" for varname in var_list] #不可读的方法 df_Q = df.groupby("id").rolling(window=3, min_periods=1, on="yearmonth[var_list].mean().reset_index().rename(columns=dict(zip(var_list, var_list_Q))) #可读性强的方法 df_Q = ( df .groupby("id") .rolling(window=3, min_periods=1, on="yearmonth")[var_list] .mean() .reset_index() .rename(columns=dict(zip(var_list, var_list_Q))))
8. Nichteinhaltung der PEP-Konventionen
Obwohl die Regeln von PEP zahlreich und umständlich sind, können wir einige PEP-Regeln ignorieren, sie aber in 90 % des Codes verwenden.
Möchten Sie Ihre Produktivität beim Codieren deutlich verbessern? Beginnen Sie mit Coding Assist, der Sie bei der intelligenten automatischen Vervollständigung, dem Öffnen von Dokumenten und der Bereitstellung von Vorschlägen zur Verbesserung Ihres Codes unterstützt.
Pylance, Kite, Tabnine und Copilot sind allesamt sehr gute Optionen.
Das obige ist der detaillierte Inhalt vonNeun häufige Fehler, die Datenwissenschaftler bei der Verwendung von Python machen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!