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

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

DDD
DDD原创
2024-10-29 02:27:29208浏览

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中文网其他相关文章!

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