考虑以下具有单行的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]