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 サイトの他の関連記事を参照してください。