如何从Pandas DataFrame列的嵌套字典中提取simpleText值
提取DataFrame字典列中的simpleText值
问题原因
你的代码存在两个可能的问题:
- 索引路径错误:样本数据里
simpleText是key1的直接子键,并非key2的子键,原代码的索引层级写错了 - 数据类型不匹配:如果
colName1的内容是字符串格式的字典(而非Python原生字典对象),直接用键索引会触发报错
解决方案
情况1:列内容是Python字典对象
修正索引路径即可:
df1['XYZ'] = df1['colName1'].apply(lambda x: x['key1']['simpleText'])
情况2:列内容是字符串格式的字典
先将字符串转换为Python字典,再提取目标值:
import ast import pandas as pd # 把字符串格式的字典解析为Python字典 df1['colName1'] = df1['colName1'].apply(ast.literal_eval) # 提取simpleText对应的值 df1['XYZ'] = df1['colName1'].apply(lambda x: x['key1']['simpleText'])
稳健写法(避免键缺失报错)
如果部分行可能缺少key1或simpleText键,用get方法返回默认值(比如None)避免报错:
df1['XYZ'] = df1['colName1'].apply(lambda x: x.get('key1', {}).get('simpleText', None))
内容的提问来源于stack exchange,提问作者ista120
相关产品推荐
相关产品推荐

