ホームページ >バックエンド開発 >Python チュートリアル >データサイエンティストが Python を使用する際に犯しやすい 9 つの間違い
ベスト プラクティスは間違いから学びます。そのため、ここでは私たちが遭遇する最も一般的な間違いのいくつかを要約し、それらを最適に解決する方法、アイデア、リソースを提供します。
これ自体はコーディングの問題ではありませんが、それでも、仮想環境を分離することは非常に良い考えだと思います。それぞれのタイプのプロジェクト実践のための環境。
なぜプロジェクトごとに専用の環境を使用するのでしょうか?
最初の理由は、Python 自体のパッケージ管理の問題であり、パッケージとバージョン間の競合を最小限に抑えたいと考えています。
もう 1 つの理由は、コードと依存関係を任意の場所に簡単にデプロイできることです。
仮想環境の使用は、Anaconda または Pipenv から開始できます。さらに詳しく知りたい場合は、Docker が最初の選択肢です。
Notebook は教育目的や、迅速で複雑な分析作業を行うのに最適ですが、優れた IDE としては機能しません。
優れた IDE は、データ サイエンスのタスクを扱う際の真の武器となり、作業効率を大幅に向上させることができます。
ノートブックは、実験を行ったり、結果を他の人に簡単に見せたりするのに最適です。ただし、エラーが発生しやすいため、長期的で共同作業が可能なデプロイ可能なプロジェクトを実行する場合は、VScode、Pycharm、Spyder などの IDE を使用することをお勧めします。
絶対パスの最大の問題は、それらを簡単にデプロイできないことです。この問題を解決する主な方法は、作業ディレクトリをプロジェクトに設定することです。プロジェクトにはプロジェクト ディレクトリの外にあるファイルが含まれており、コード内のすべてのパスに相対パスを使用します。
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))
コードは実行できるが、奇妙な警告メッセージが生成される場合、最終的にコードを実行して意味のある出力を受け取ることができて満足です。しかし、これらの警告に対処する必要があるでしょうか?
まず第一に、警告自体はエラーではありませんが、潜在的なエラーや問題を思い出させるものです。コード内の何かが正常に動作しても、意図したとおりに動作しない可能性がある場合、警告が表示されます。
私が遭遇する最も一般的な警告は、Pandas の「SettingwithCopyWarning」と「DeprecationWarning」です。
SetwithCopyWarning の最大の理由は、Pandas が連鎖割り当て (Chained Assignment) を検出したときに発生する警告です。この操作では警告が報告される場合と報告されない場合があるため、連鎖インデックスの結果に値を代入することは避けるべきです。 . .
DeprecationWarning は通常、Pandas の一部の機能が非推奨になり、新しいバージョンを使用するとコードが壊れることを示します。
ここでのアドバイスは、すべての警告に対処することではありませんが、すべての警告の理由を理解し、特定のプロジェクトでどの警告を無視してもよいか、またそれらの警告の発生が結果に影響するかを把握する必要があります。影響があるので避けるべきです。
リスト内包表記は Python の非常に強力な機能です。多くの for ループは、より読みやすく、より Python らしく、より高速なリスト内包表記に置き換えることができます。
ディレクトリ内の CSV ファイルを読み取るように設計されたサンプル コードを以下に示します。ご覧のとおり、Tim はリスト内包表記を使用すると保守が簡単です。
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")]
型アノテーション (または型ヒント) は、変数に型を割り当てる方法です。 IDE が IntelliSense にプロンプトを表示すると、インジケーター変数/パラメーターの型を提供できます。これは開発速度を向上させるだけでなく、コードを読む際にも非常に役立ちます
def mystery_combine(a, b, times): return (a + b) * times
このように書くと、a、b、times の型がまったくわかりません。
def mystery_combine(a: str, b: str, times: int) -> str: return (a + b) * times
しかし、型アノテーションを追加すると、a と b が文字列であり、times が整数であることがわかります。
Python はバージョン 3.5 で型アノテーションを導入しましたが、Python では導入されないことに注意してください。実行中に型の注釈をチェックします。これは、IDE が動的言語で静的型チェックを実行して潜在的なエラーを回避するための便利な静的型チェック ツールを提供するだけです。
メソッドチェーンは pandas の優れた機能ですが、1 行に多くの操作が含まれる場合、コードが判読できなくなる可能性があります。
このアプローチをさらに簡単にするコツは、式を括弧で囲むことです。これにより、式のコンポーネントごとに 1 行を使用できるようになります。
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))))
初めて Python でプログラミングを始めると、コードが粗雑で読みにくい場合があります。これは、コードを作成するための独自の設計ルールがないためです。コードの見栄えが良くなります。このようなルールを自分で設計するのは大変で労力がかかり、多くの練習が必要ですが、幸いなことに、Python には正式に規定されたルール、つまり Python の公式スタイル ガイドである PEP が用意されています。
PEP ルールは多くて面倒ですが、一部の PEP ルールは無視できますが、コードの 90% で使用できます。
コーディングの生産性を大幅に向上させたいと考えていますか?コーディング アシストの使用を開始してください。コーディング アシストは、賢いオートコンプリート、ドキュメントを開いて、コードを改善するための提案を提供するのに役立ちます。
pylance、Kite、tabnine、copilot はすべて非常に良い選択肢です。
以上がデータサイエンティストが Python を使用する際に犯しやすい 9 つの間違いの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。