首页 > 后端开发 > Python教程 > 如何有效地将映射列添加到 Pandas DataFrame 中?

如何有效地将映射列添加到 Pandas DataFrame 中?

DDD
发布: 2024-10-29 02:27:29
原创
320 人浏览过

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

向 Pandas DataFrame 添加映射列

使用 pandas 时,基于现有列添加具有映射值的新列可以是一项简单的任务。但是,某些方法可能会导致错误或困难。

一种常见的尝试是将映射值直接分配给新列:

<code class="python">df["B"] = equiv(df["A"])</code>
登录后复制

但是,这将失败,因为等效,表示字典,不是可调用函数。

另一种可能无法产生所需结果的方法是将 map 与 lambda 函数一起使用:

<code class="python">df["B"] = df["A"].map(lambda x: equiv[x])</code>
登录后复制

此表达式可能会引发 KeyError,除非字典键与列值完全匹配。

正确的解决方案

添加映射列的正确方法是直接将映射与字典一起使用:

<code class="python">df["B"] = df["A"].map(equiv)</code>
登录后复制

此方法将使用 equal 字典中的映射值创建一个新列 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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板