如何从存储字典列表的pandas Series中提取label为1的prob值
方法1:兼容所有字典排序场景(推荐)
不需要假设列表内两个字典的先后顺序,自动匹配label=1的条目取值,代码如下:
# s为你给出的Response_prob Series对象 prob_label1 = s.apply(lambda x: next(d['prob'] for d in x if d['label'] == 1))
这里用next()比列表推导取第一个元素更高效,不需要生成完整列表。
方法2:高性能场景(确认label=1永远在列表第一位时使用)
如果你能确认每条数据的列表第一个字典固定是label=1,可以直接用pandas的str访问器操作,速度远高于apply:
prob_label1 = s.str[0].str.get('prob') # 或者简写为 prob_label1 = s.str[0].str['prob']
结果验证
提取完成后可以打印前5行核对结果:
print(prob_label1.head())
内容的提问来源于stack exchange,提问作者Ziggy
相关产品推荐
相关产品推荐

