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

从列表嵌套字典的Pandas DataFrame列提取值时遇NaN问题求助

解决Pandas提取嵌套字典value返回NaN的问题

你当前代码返回NaN的核心问题有两个:

  • Data列是混合类型(整数、嵌套字典的列表),str['value']只对字符串类型生效,非字符串行直接返回NaN
  • 就算是列表类型的行,也得先取出列表里的字典元素,再去提取value,直接用str['value']根本触不到字典里的键

用apply自定义处理逻辑就能解决,代码如下:

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'])

# 自定义函数提取目标value
def extract_value(item):
    # 先判断是否为非空列表
    if isinstance(item, list) and len(item) > 0:
        # 再判断列表第一个元素是字典且包含'value'键
        if isinstance(item[0], dict) and 'value' in item[0]:
            return item[0]['value']
    # 不符合条件返回规范缺失值
    return pd.NA

df['new_col'] = df['Data'].apply(extract_value)
print(df.head(3))

运行后第二行的new_col会得到IT-Sourced Changes 2022,其余两行返回pd.NA(比NaN更严谨的缺失值标识)。如果你的列表里有多个字典,想提取所有value,可以把返回逻辑改成[d.get('value') for d in item if isinstance(d, dict)]。

内容的提问来源于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 08:40:32