对pandas列中的列表使用loc



考虑以下具有单行的pandas数据框:

data = [[['A'], '0', ['B']]]
dffsm = pd.DataFrame(data, columns=['State', 'Trigger', 'NextState'])

由于数据类型是字符串,下面一行将正确地过滤行:

dffsm.loc[dffsm['Trigger'] == '0']

但是,类似的行不会根据特定的列表过滤行:

dffsm.loc[dffsm['State'] == ['A']]

有趣的是,dffsm.at[0,'State']产生['A'],但.loc不会过滤相同的值。

如果我想根据列表过滤包含列表的pandas列,我该怎么做?

使用isin,然后在值周围加上双括号来搜索

dffsm.loc[dffsm['State'].isin([['A']])]
State   Trigger     NextState
0   [A]         0       [B]

最新更新