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

如何提取Pandas DataFrame指定列中字典元素的value字段值

问题原因

  • 你调用df.replace()结合正则处理的方案完全不匹配当前场景:当前col1列存储的是字典类型对象,正则仅能作用于字符串内容,无法识别、处理字典结构,所以不会生效。
  • 你所写的正则表达式r'{^\d\.}+'本身逻辑也存在问题,既无法匹配字典结构,也不满足提取value对应值的需求。

实现方案

方案1:使用str.get()(最简洁推荐)

Pandas的Series内置的str访问器支持直接对字典按键取值,代码如下:

import pandas as pd
test = {'col1':[{'value': '001'},{'value': False},{'value': 'abc'}]} 
df = pd.DataFrame(test)
df['col1'] = df['col1'].str.get('value')

运行后即可得到你需要的结果,且如果某行不存在value键会自动返回NaN,不会触发报错。

方案2:使用apply()遍历处理

如果你需要更灵活的自定义处理逻辑,可以用apply结合匿名函数实现:

# 基础写法,和str.get效果一致
df['col1'] = df['col1'].apply(lambda x: x.get('value'))

# 兼容非字典元素的增强写法
df['col1'] = df['col1'].apply(lambda x: x.get('value') if isinstance(x, dict) else x)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 05:45:05