ホームページ > バックエンド開発 > Python チュートリアル > データサイエンティストが Python を使用する際に犯しやすい 9 つの間違い

データサイエンティストが Python を使用する際に犯しやすい 9 つの間違い

王林
リリース: 2023-04-11 21:07:04
転載
1414 人が閲覧しました

ベスト プラクティスは間違いから学びます。そのため、ここでは私たちが遭遇する最も一般的な間違いのいくつかを要約し、それらを最適に解決する方法、アイデア、リソースを提供します。

データサイエンティストが Python を使用する際に犯しやすい 9 つの間違い

1. 仮想環境を使用しない

これ自体はコーディングの問題ではありませんが、それでも、仮想環境を分離することは非常に良い考えだと思います。それぞれのタイプのプロジェクト実践のための環境。

なぜプロジェクトごとに専用の環境を使用するのでしょうか?

最初の理由は、Python 自体のパッケージ管理の問題であり、パッケージとバージョン間の競合を最小限に抑えたいと考えています。

もう 1 つの理由は、コードと依存関係を任意の場所に簡単にデプロイできることです。

仮想環境の使用は、Anaconda または Pipenv から開始できます。さらに詳しく知りたい場合は、Docker が最初の選択肢です。

2. Jupyter Notebook の過剰使用

Notebook は教育目的や、迅速で複雑な分析作業を行うのに最適ですが、優れた IDE としては機能しません。

優れた IDE は、データ サイエンスのタスクを扱う際の真の武器となり、作業効率を大幅に向上させることができます。

ノートブックは、実験を行ったり、結果を他の人に簡単に見せたりするのに最適です。ただし、エラーが発生しやすいため、長期的で共同作業が可能なデプロイ可能なプロジェクトを実行する場合は、VScode、Pycharm、Spyder などの IDE を使用することをお勧めします。

3. 相対パスではなく絶対パスを使用する

絶対パスの最大の問題は、それらを簡単にデプロイできないことです。この問題を解決する主な方法は、作業ディレクトリをプロジェクトに設定することです。プロジェクトにはプロジェクト ディレクトリの外にあるファイルが含まれており、コード内のすべてのパスに相対パスを使用します。

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. 警告を処理しない

コードは実行できるが、奇妙な警告メッセージが生成される場合、最終的にコードを実行して意味のある出力を受け取ることができて満足です。しかし、これらの警告に対処する必要があるでしょうか?

まず第一に、警告自体はエラーではありませんが、潜在的なエラーや問題を思い出させるものです。コード内の何かが正常に動作しても、意図したとおりに動作しない可能性がある場合、警告が表示されます。

私が遭遇する最も一般的な警告は、Pandas の「SettingwithCopyWarning」と「DeprecationWarning」です。

SetwithCopyWarning の最大の理由は、Pandas が連鎖割り当て (Chained Assignment) を検出したときに発生する警告です。この操作では警告が報告される場合と報告されない場合があるため、連鎖インデックスの結果に値を代入することは避けるべきです。 . .

DeprecationWarning は通常、Pandas の一部の機能が非推奨になり、新しいバージョンを使用するとコードが壊れることを示します。

ここでのアドバイスは、すべての警告に対処することではありませんが、すべての警告の理由を理解し、特定のプロジェクトでどの警告を無視してもよいか、またそれらの警告の発生が結果に影響するかを把握する必要があります。影響があるので避けるべきです。

5. リスト内包表記は使用されません (ほとんど使用されません)

リスト内包表記は 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")]
ログイン後にコピー

6. 型アノテーションを使用しないでください

型アノテーション (または型ヒント) は、変数に型を割り当てる方法です。 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 が動的言語で静的型チェックを実行して潜在的なエラーを回避するための便利な静的型チェック ツールを提供するだけです。

7. Pandas のコードは標準化されていません

メソッドチェーンは 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))))
ログイン後にコピー

8. PEP 規約に準拠していない

初めて Python でプログラミングを始めると、コードが粗雑で読みにくい場合があります。これは、コードを作成するための独自の設計ルールがないためです。コードの見栄えが良くなります。このようなルールを自分で設計するのは大変で労力がかかり、多くの練習が必要ですが、幸いなことに、Python には正式に規定されたルール、つまり Python の公式スタイル ガイドである PEP が用意されています。

PEP ルールは多くて面倒ですが、一部の PEP ルールは無視できますが、コードの 90% で使用できます。

9. コーディング支援ツールを使用していません

コーディングの生産性を大幅に向上させたいと考えていますか?コーディング アシストの使用を開始してください。コーディング アシストは、賢いオートコンプリート、ドキュメントを開いて、コードを改善するための提案を提供するのに役立ちます。

pylance、Kite、tabnine、copilot はすべて非常に良い選択肢です。

以上がデータサイエンティストが Python を使用する際に犯しやすい 9 つの間違いの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:51cto.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート