首页 > 后端开发 > Python教程 > 如何将字典值映射到新的 Pandas 列?

如何将字典值映射到新的 Pandas 列?

Linda Hamilton
发布: 2024-10-29 20:35:02
原创
560 人浏览过

How to Map Dictionary Values to a New Pandas Column?

将字典值映射到新的 Pandas 列

处理 Pandas 数据帧时,可能存在需要添加基于新列的情况基于现有列的映射值。为了实现这一点,一个常见的误解是使用 equal 函数作为新列分配中的参数。但是,这会导致错误,因为 equal 不是可调用函数。

正确的方法是使用 Pandas 地图函数。基于字典中的映射值添加新列的语法如下:

df["new_column"] = df["existing_column"].map(mapping_function)
登录后复制

mapping_function 是一个接受现有列的值并返回所需映射值的函数。在这种情况下,映射函数是一个 lambda 函数,它利用字典 equal 来检索相应的映射值:

mapping_function = lambda x: equiv[x]
登录后复制

通过利用此方法,数据帧 df 将使用新列“B”进行更新包含基于提供的字典的“A”列中的映射值:

import pandas as pd
equiv = {7001:1, 8001:2, 9001:3}
df = pd.DataFrame({"A": [7001, 8001, 9001]})
df["B"] = df["A"].map(lambda x: equiv[x])

print(df)
登录后复制

输出:

      A   B
0  7001   1
1  8001   2
2  9001   3
登录后复制

此方法无缝处理密钥不存在于字典,如下例:

equiv = {7001:1, 8001:2, 9001:3}
df = pd.DataFrame({"A": [7001, 8001, 9001, 10000]})
df["B"] = df["A"].map(lambda x: equiv[x])

print(df)
登录后复制

输出:

       A   B
0   7001   1
1   8001   2
2   9001   3
3  10000 NaN
登录后复制

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

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