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

如何从DataFrame的字典类型列中提取值并创建新列?

提取DataFrame字典列中的指定值创建新列

场景说明

你有一个包含混合类型(数值、字典)的DataFrame,需要从字典类型的行中提取value字段的值,生成新列。原数据构造如下:

import pandas as pd

data = [10,{'self': 'https://elia.atlassian.net/rest/api/3/customFieldOption/10200', 'value': 'IT-Sourced Changes 2022', 'id': '10200'},30]
df = pd.DataFrame(data, columns=['Data'])

解决方案

方法1:自定义逻辑提取(灵活可控)

通过apply函数结合类型判断,精准处理混合类型数据:

# 提取字典中的'value'值,非字典行返回pd.NA(可替换为''或其他默认值)
df['Extracted_Value'] = df['Data'].apply(lambda x: x.get('value') if isinstance(x, dict) else pd.NA)
  • 逻辑说明:先用isinstance(x, dict)判断每行数据是否为字典,是则调用x.get('value')获取指定键的值;否则返回pd.NA标记缺失值。

方法2:简洁版提取(适合常规场景)

利用pandas的str.get方法自动处理非字典类型,代码更简洁:

df['Extracted_Value'] = df['Data'].str.get('value')
  • 逻辑说明:str.get会对字典类型提取指定键的值,非字典类型直接返回NaN,无需额外判断。

最终效果

执行后DataFrame将新增Extracted_Value列,结果如下:

DataExtracted_Value
10
{'self': 'https://elia.atlassian.net/...', 'value': 'IT-Sourced...'}IT-Sourced Changes 2022
30

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 07:50:30