最初のジレンマ:
既存の列データに基づいてマップされた値を使用して、新しい列を Pandas DataFrame に組み込もうとしています。ラムダ関数と辞書の両方を使用すると、エラーまたは予期しない結果が発生します。
解決策:
正しいアプローチは、map() 関数を対象の辞書。構文は次のとおりです: df["B"] = df["A"].map(equiv).
説明:
map() 関数は指定された列の各要素に対する操作。この場合、操作は、列データによって提供されるキーに基づいて、ディクショナリ相当からマップされた値を取得します。
例:
次のコードを考えてみましょう。
<code class="python">import pandas as pd equiv = {7001:1, 8001:2, 9001:3} df = pd.DataFrame( {"A": [7001, 8001, 9001]} ) df["B"] = df["A"].map(equiv) print(df)</code>
出力:
A B 0 7001 1 1 8001 2 2 9001 3
このアプローチは、マップされた値を新しい列 B に効果的に追加します。さらに、NaN を返すことで欠落したキーを適切に処理します。
追加の考慮事項:
以上がディクショナリ値をマップして Pandas DataFrame に新しい列を作成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。