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

如何在Pandas DataFrame中更新字典值:替换空列表为Null

处理DataFrame嵌套字典中空列表替换为Null的问题

原始代码

import pandas as pd

dic = {'key1': ['value 1','value2'],'key2':[[{'a':'123','b':[]}],[{'a':'231','b':['123','56']}]]}
df = pd.DataFrame(dic)

需求说明

将key2列中嵌套字典里键'b'对应的空列表[]替换为Null值,期望输出如下:

key1                          key2
0  value 1        [{'a': '123', 'b': Null}]
1   value2  [{'a': '231', 'b': ['123', '56']}]

解决方案

使用apply遍历key2列的每个元素,针对嵌套字典做判断替换:

# 第一步:将空列表替换为pandas标准空值None
df['key2'] = df['key2'].apply(
    lambda lst: [
        {'a': d['a'], 'b': None if d['b'] == [] else d['b']} 
        for d in lst
    ]
)

# 可选第二步:若需要将None显示为字符串'Null',执行此段
df['key2'] = df['key2'].apply(
    lambda lst: [
        {'a': d['a'], 'b': 'Null' if d['b'] is None else d['b']} 
        for d in lst
    ]
)

# 查看最终结果
print(df)

说明

  • 第一步处理是将空列表替换为pandas通用的空值标识None,适合后续数据处理;
  • 第二步为可选操作,仅当需要输出时显示字符串'Null'时使用;
  • 执行后即可得到符合需求的DataFrame格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 11:15:03