最初的困境:
遇到看似难以克服的挑战,同时尝试将新列合并到 Pandas DataFrame 中,并根据现有列数据映射值。同时使用 lambda 函数和字典会导致错误或意外结果。
解决方案:
正确的方法在于结合使用 map() 函数目标词典。语法为: df["B"] = df["A"].map(equiv).
解释:
map() 函数应用一个对指定列中的每个元素进行操作。在本例中,操作是根据列数据提供的键从字典 equal 中检索映射值。
示例:
考虑以下代码:
<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中文网其他相关文章!