データサイエンティストが 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 サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











ほとんどのテキストエディターを使用して、XMLファイルを開きます。より直感的なツリーディスプレイが必要な場合は、酸素XMLエディターやXMLSPYなどのXMLエディターを使用できます。プログラムでXMLデータを処理する場合、プログラミング言語(Pythonなど)やXMLライブラリ(XML.ETREE.ELEMENTTREEなど)を使用して解析する必要があります。

モバイルには、単純で直接無料のXMLからPDFツールはありません。必要なデータ視覚化プロセスには、複雑なデータの理解とレンダリングが含まれ、市場のいわゆる「無料」ツールのほとんどは経験がありません。コンピューター側のツールを使用したり、クラウドサービスを使用したり、アプリを開発してより信頼性の高い変換効果を取得することをお勧めします。

XMLをPDFに直接変換するアプリケーションは、2つの根本的に異なる形式であるため、見つかりません。 XMLはデータの保存に使用され、PDFはドキュメントを表示するために使用されます。変換を完了するには、PythonやReportLabなどのプログラミング言語とライブラリを使用して、XMLデータを解析してPDFドキュメントを生成できます。

XMLコンテンツを変更するには、ターゲットノードの正確な検出が必要であるため、プログラミングが必要です。プログラミング言語には、XMLを処理するための対応するライブラリがあり、APIを提供して、データベースの運用などの安全で効率的で制御可能な操作を実行します。

XMLフォーマットツールは、読みやすさと理解を向上させるために、ルールに従ってコードを入力できます。ツールを選択するときは、カスタマイズ機能、特別な状況の処理、パフォーマンス、使いやすさに注意してください。一般的に使用されるツールタイプには、オンラインツール、IDEプラグイン、コマンドラインツールが含まれます。

XMLの美化は、合理的なインデンテーション、ラインブレーク、タグ組織など、本質的に読みやすさを向上させています。原則は、XMLツリーを通過し、レベルに応じてインデントを追加し、テキストを含む空のタグとタグを処理することです。 PythonのXML.ETREE.ELEMENTTREEライブラリは、上記の美化プロセスを実装できる便利なchile_xml()関数を提供します。

単一のアプリケーションで携帯電話でXMLからPDF変換を直接完了することは不可能です。クラウドサービスを使用する必要があります。クラウドサービスは、2つのステップで達成できます。1。XMLをクラウド内のPDFに変換し、2。携帯電話の変換されたPDFファイルにアクセスまたはダウンロードします。

携帯電話でXMLをPDFに直接変換するのは簡単ではありませんが、クラウドサービスの助けを借りて実現できます。軽量モバイルアプリを使用してXMLファイルをアップロードし、生成されたPDFを受信し、クラウドAPIで変換することをお勧めします。クラウドAPIはサーバーレスコンピューティングサービスを使用し、適切なプラットフォームを選択することが重要です。 XMLの解析とPDF生成を処理する際には、複雑さ、エラー処理、セキュリティ、および最適化戦略を考慮する必要があります。プロセス全体では、フロントエンドアプリとバックエンドAPIが連携する必要があり、さまざまなテクノロジーをある程度理解する必要があります。
