如何在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
相关产品推荐
相关产品推荐

