Heim >Backend-Entwicklung >Python-Tutorial >Neun häufige Fehler, die Datenwissenschaftler bei der Verwendung von Python machen

Neun häufige Fehler, die Datenwissenschaftler bei der Verwendung von Python machen

王林
王林nach vorne
2023-04-11 21:07:041421Durchsuche

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? Neun häufige Fehler, die Datenwissenschaftler bei der Verwendung von Python machen

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-Notebooks

Notebooks 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 verarbeitet

Wenn 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) * times

Wenn 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

Es sollte beachtet werden, dass Python in der Version Typanmerkungen eingeführt hat 3.5 und Python nicht. Die Überprüfung von Typanmerkungen während der Ausführung stellt lediglich ein praktisches Tool zur statischen Typprüfung für die IDE bereit, um statische Typprüfungen für dynamische Sprachen durchzuführen und einige potenzielle Fehler zu vermeiden.

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

Wenn Sie zum ersten Mal mit der Programmierung in Python beginnen, ist der Code möglicherweise grob und unlesbar. Dies liegt daran, dass wir kein eigenes Design haben Regeln, damit mein Code besser aussieht. Es wäre mühsam und mühsam, solche Regeln selbst zu entwerfen und erfordert viel Übung. Glücklicherweise hat Python offiziell Regeln festgelegt: PEP, der offizielle Styleguide von Python.

Obwohl die Regeln von PEP zahlreich und umständlich sind, können wir einige PEP-Regeln ignorieren, sie aber in 90 % des Codes verwenden.

9. Sie verwenden keine Codierungshilfen

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:51cto.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen