マップされた列を Pandas DataFrame に効率的に追加するにはどうすればよいですか?

DDD
リリース: 2024-10-29 02:27:29
オリジナル
312 人が閲覧しました

How to Efficiently Add a Mapped Column to a Pandas DataFrame?

Pandas DataFrame へのマップされた列の追加

パンダを使用する場合、既存の列に基づいてマップされた値を持つ新しい列を追加します簡単な作業にすることができます。ただし、特定のアプローチではエラーや問題が発生する可能性があります。

一般的な試みの 1 つは、マップされた値を新しい列に直接割り当てることです:

<code class="python">df["B"] = equiv(df["A"])</code>
ログイン後にコピー

ただし、これは equiv として失敗します。辞書は呼び出し可能な関数ではありません。

望ましい結果が得られない可能性がある別のアプローチは、ラムダ関数でマップを使用することです。

<code class="python">df["B"] = df["A"].map(lambda x: equiv[x])</code>
ログイン後にコピー

この式は、辞書のキーは列の値と正確に一致します。

正しい解決策

マップされた列を追加する適切な方法は、map を辞書に直接使用することです:

<code class="python">df["B"] = df["A"].map(equiv)</code>
ログイン後にコピー

このアプローチでは、equiv ディクショナリからマップされた値を含む新しい列 B が作成されます。キーがディクショナリに存在しない場合、対応する行には NaN が割り当てられます。

次の DataFrame について考えてみましょう:

<code class="python">df = pd.DataFrame({"A": [7001, 8001, 9001]})
equiv = {7001: 1, 8001: 2, 9001: 3}</code>
ログイン後にコピー

正しいマッピングを適用すると、望ましい結果が得られます:

<code class="python">df["B"] = df["A"].map(equiv)

print(df)

      A  B
0  7001  1
1  8001  2
2  9001  3</code>
ログイン後にコピー

以上がマップされた列を Pandas DataFrame に効率的に追加するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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