[英]Filter list of dicts in pandas series
我有一個包含字典列表的 pandas 系列。 我想根據條件過濾掉字典。 這是一些示例數據:
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']
})
我想刪除所有value
r
dicts
> 100
的字典。 預計 output:
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']]
Output:
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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.