首页 >后端开发 >Python教程 >如何映射字典值以在 Pandas DataFrame 中创建新列?

如何映射字典值以在 Pandas DataFrame 中创建新列?

Susan Sarandon
Susan Sarandon原创
2024-10-28 20:21:30215浏览

How to Map Dictionary Values to Create a New Column in a Pandas DataFrame?

解决 Pandas 映射挫折:添加具有映射字典值的列

最初的困境:

遇到看似难以克服的挑战,同时尝试将新列合并到 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 来优雅地处理丢失的键。

其他注意事项:

  • 键处理:如果字典中的键不对应于列中的任何元素,则映射值变为 NaN。
  • 性能: 对于大型数据集,映射操作可能需要大量计算。如有必要,请考虑优化技术。

以上是如何映射字典值以在 Pandas DataFrame 中创建新列?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn