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

Python如何提取字典内列表首元素并添加为Pandas DataFrame新列

实现方法

你之前的写法错误原因是:pandas.Series.map()需要传入映射关系或者可调用对象,你写的dict[WHAT HERE][0]是固定值表达式,代码运行时就会直接执行,不会逐行匹配key列的取值。

可直接运行的正确代码

注意不要用dict做变量名,会覆盖Python内置的字典类型,示例中替换为val_map:

val_map = {"key 1": ["val 1", "val 2"],
        "key 2": ["val 3", "val 4", "val 5"],
        "key 3": ["val 6", "val 7"]
}

df['first_key'] = df['key'].map(lambda current_key: val_map[current_key][0])

运行后就能得到你预期的输出结果:

key      first_key
0    key 1    val 1
1    key 2    val 3
2    key 3    val 6

逻辑说明

  • 传入map的lambda匿名函数会逐行遍历key列,把每一行的键值作为current_key参数传入
  • 先通过val_map[current_key]取到键对应的列表,再取索引为0的第一个元素作为新列的值

容错版本

如果DataFrame里可能存在字典中不存在的键,可以加默认值避免报KeyError:

# 匹配不到的键对应位置填充None
df['first_key'] = df['key'].map(lambda current_key: val_map.get(current_key, [None])[0])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.31 06:19:27