如何从Pandas数据框的字典列表列提取键以Past开头的字典?
筛选Pandas数据框中字典列表列的指定前缀字典
实现方案
针对你的需求,直接使用apply结合列表推导式就能高效完成筛选,无需复杂操作。
示例代码
import pandas as pd # 构造示例数据 df = pd.DataFrame({ 'names': [ [{'Open-pending':123}, {'Past-Pending':456}, {'Open-Closed':789},{'Past-Closed': 453}] ] }) # 生成目标列:筛选键以Past开头的字典 df['new_names'] = df['names'].apply( lambda lst: [d for d in lst if any(k.startswith('Past') for k in d)] ) # 输出结果 print(df['new_names'])
代码说明
df['names'].apply(...):对names列的每一个列表元素执行筛选逻辑- 列表推导式
[d for d in lst if ...]:遍历列表中的每个字典,只保留符合条件的项 any(k.startswith('Past') for k in d):检查字典中是否存在以Past开头的键,满足则保留该字典
执行后得到的new_names列结果如下:
0 [{'Past-Pending': 456}, {'Past-Closed': 453}] Name: new_names, dtype: object
内容的提问来源于stack exchange,提问作者Nithin Ramayanam
相关产品推荐
相关产品推荐

