Python 从dataframe中选择子集,它包含给定列表中的元素

Python 从dataframe中选择子集,它包含给定列表中的元素,python,pandas,Python,Pandas,我有dataframe df,并列出如下成员: df = pd.DataFrame({'a':[[20,21],[22,19],[30,27]], 'b':[22,13,7]}) members = [[20,21],[18,21],[15,18]] 我想从df中选择子集df1,让列“a”的值进入列表成员 在给定的情况下,我希望得到如下输出: df1 = pd.DataFrame({'a':[[20,21]], 'b':[22]}) 一种可能的方法是将值转换为元组,并通过以下方式进行过滤:

我有dataframe df,并列出如下成员:

df = pd.DataFrame({'a':[[20,21],[22,19],[30,27]], 'b':[22,13,7]})
members = [[20,21],[18,21],[15,18]]
我想从df中选择子集df1,让列“a”的值进入列表成员

在给定的情况下,我希望得到如下输出:

df1 = pd.DataFrame({'a':[[20,21]], 'b':[22]})

一种可能的方法是将值转换为元组,并通过以下方式进行过滤:

使用isin

或者,查询

或者,申请

或者,列出理解

细节

In [525]: df
Out[525]:
          a   b
0  [20, 21]  22
1  [22, 19]  13
2  [30, 27]   7

In [526]: members
Out[526]: [[20, 21], [18, 21], [15, 18]]

In [527]: pd.__version__
Out[527]: '0.23.0.dev0+60.ge09189e'

欢迎来到堆栈溢出!请花一点时间仔细检查以下内容:。您已经尝试了什么?所以列表不受支持isin@JiaweiLu-完全正确。@JiaweiLu-对于您使用df[df['a'].isinmembers]?它不工作,表明缓冲区的维度数错误,预期为1,实际为2。pandas版本0.20.1hmmm,我得到TypeError:Unhable类型:“list”你的pandas是什么,python版本?我使用pandas 0.22.0Ah,可能,当时可能是版本添加。我也这么认为。
In [523]: df[df['a'].isin(members)]
Out[523]:
          a   b
0  [20, 21]  22
In [530]: df.query('a in @members')
Out[530]:
          a   b
0  [20, 21]  22
In [524]: df[df['a'].apply(lambda x: x in members)]
Out[524]:
          a   b
0  [20, 21]  22
In [536]: df[[x in members for x in df['a']]]
Out[536]:
          a   b
0  [20, 21]  22
In [525]: df
Out[525]:
          a   b
0  [20, 21]  22
1  [22, 19]  13
2  [30, 27]   7

In [526]: members
Out[526]: [[20, 21], [18, 21], [15, 18]]

In [527]: pd.__version__
Out[527]: '0.23.0.dev0+60.ge09189e'