ホームページ > バックエンド開発 > Python チュートリアル > Pandas DataFrame の複数の列を効率的にラベル エンコードするにはどうすればよいですか?

Pandas DataFrame の複数の列を効率的にラベル エンコードするにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-11-21 22:52:13
オリジナル
994 人が閲覧しました

How to Efficiently Label Encode Multiple Columns in a Pandas DataFrame?

Scikit-Learn の複数の列にわたるラベル エンコーディング

DataFrame でカテゴリ データの複数の列を扱う場合、面倒な作業になる可能性があります。列ごとに個別の LabelEncoder オブジェクトを作成するのは非効率的です。この問題は、文字列ベースのカテゴリ データの多数の列を含むデータセットを操作するときによく発生します。

問題の説明:

単一の LabelEncoder オブジェクトを DataFrame 全体に適用しようとしています提供されたコード スニペットに示されているように、エラーが発生します。エラー メッセージ「不正な入力形状 (6, 3)」は、LabelEncoder が複数の列を持つ DataFrame ではなく、値の 1D 配列を期待していることを示しています。

解決策:

この問題を解決するには、pandas の apply() メソッドを利用することをお勧めします。このエレガントな解決策には、LabelEncoder の fit_transform() を適用することが含まれます。

df.apply(LabelEncoder().fit_transform)
ログイン後にコピー

このアプローチは、各列を反復処理し、LabelEncoder 変換を適用し、エンコードされた値を含む新しい DataFrame を返します。

追加の考慮事項:

  • 逆変換: エンコードされた値を元のカテゴリーにデコードするには、エンコードされた DataFrame で inverse_transform() メソッドを使用します。
  • 複数のエンコーダー: 異なる LabelEncoder パラメーターが必要な場合は、列の場合は、拡張セクションに示すように、エンコーダを格納するために辞書を使用することを検討してください。答え。
  • 列の選択: すべての列でラベル エンコードが必要なわけではないシナリオでは、列のサブセットを変換できるようにする ColumnTransformer を使用します。

推奨される代替案:

Scikit-Learn バージョンの場合0.20 以降では、文字列データの LabelEncoder のより効率的な代替手段として OneHotEncoder が推奨されます。ワンホット エンコーディングを直接サポートします。これは、多くの場合、機械学習モデルのカテゴリ データに好まれる表現です。

OneHotEncoder().fit_transform(df)
ログイン後にコピー

これらの手法を活用することで、実務者は文字列ベースのカテゴリ データの複数の列のラベル エンコーディングを効率的に処理できます。データを収集し、機械学習分析用のデータセットの準備を容易にします。

以上がPandas DataFrame の複数の列を効率的にラベル エンコードするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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