簡體   English   中英

pandas系列dicts過濾列表

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM