我有一个熊猫系列,其中包含一个字典列表。我想根据条件筛选出字典。以下是一些示例数据:
import pandas as pd
df = pd.DataFrame({'d': [[{'br': 1, 'ba': 1, 'r': 100},
{'ba': 1, 'r': 80},
{'br': 2, 'ba': 1, 'r': 150},
{'br': 1, 'ba': 1, 'r': 90}],
[{'br': 1, 'ba': 1, 'r': 100},
{'ba': 1, 'r': 80},
{'br': 2, 'ba': 1, 'r': 150}]],
'id': ['xxas', 'yxas'],
'name': ['A', 'B']
})
我想删除密钥r
> 100
的所有dicts
和value
。预期输出:
dff = pd.DataFrame({'d': [[{'br': 1, 'ba': 1, 'r': 100},
{'ba': 1, 'r': 80},
{'br': 1, 'ba': 1, 'r': 90}],
[{'br': 1, 'ba': 1, 'r': 100},
{'ba': 1, 'r': 80}]],
'id': ['xxas', 'yxas'],
'name': ['A', 'B']
})
您可以使用列表理解来筛选:
df['d'] = [[d for d in row if d['r']<=100] for row in df['d']]
输出:
d id name
0 [{'br': 1, 'ba': 1, 'r': 100}, {'ba': 1, 'r': ... xxas A
1 [{'br': 1, 'ba': 1, 'r': 100}, {'ba': 1, 'r': ... yxas B