You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将字典中的仅数值元素映射到DataFrame新列?

从字典列表值中提取数值映射到DataFrame列

针对你遇到的问题,这里提供几种可行的解决方法,其中包含你期望的.str[]用法:

方法1:使用.str[]提取列表元素

先通过map匹配字典中的列表值,再用.str[1]提取列表的第二个元素(数值部分):

df['count'] = df['state'].map(dic).str[1]

原理:map(dic)会将state列的每个值对应到字典中的列表,.str[]可以对Series中的列表元素进行索引取值,索引1对应列表里的数值项。

方法2:提前转换字典为数值映射

先将原字典转换为仅包含数值的新字典,再进行映射:

# 生成只保留数值的字典
num_dict = {key: value[1] for key, value in dic.items()}
# 映射到DataFrame
df['count'] = df['state'].map(num_dict)

这种方式适合需要多次复用该映射的场景,避免重复提取元素。

方法3:使用apply自定义提取逻辑

通过apply对每个state值执行自定义函数,直接提取对应数值:

df['count'] = df['state'].apply(lambda x: dic[x][1])

该方法逻辑直观,适合简单的自定义提取需求。

执行上述任意一种方法后,都能得到你期望的结果:

date          state      count
2018-01-13      AR        804.0
2018-02-23      CA        223.0

内容的提问来源于stack exchange,提问作者prina sikowitz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 21:03:13