筛选pandas系列中的dicts列表



我有一个熊猫系列,其中包含一个字典列表。我想根据条件筛选出字典。以下是一些示例数据:

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的所有dictsvalue。预期输出:

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

最新更新