Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在列表的列表中筛选_Python_Python 3.x_Pandas - Fatal编程技术网

Python 在列表的列表中筛选

Python 在列表的列表中筛选,python,python-3.x,pandas,Python,Python 3.x,Pandas,我有一个数据框,其中包含一列的列表。 范例 我想在值为1、2或3时选择行。 我想在列表中这样做,这样我可以像这样过滤: filter = [1,2,3] df_new = df[df[column] is in filter] 然而,它回报了我 “序列的真值不明确。” 如果我尝试这样做: filter = [1,2,3] df_new = df[df[column].isin(filter)] 它还我 返回了一个带有错误集的结果 我试着用任何一种,但在这里似乎不起作用。 我还查看了使用np.

我有一个数据框,其中包含一列的列表。 范例

我想在值为1、2或3时选择行。 我想在列表中这样做,这样我可以像这样过滤:

filter = [1,2,3]
df_new = df[df[column] is in filter]
然而,它回报了我 “序列的真值不明确。”

如果我尝试这样做:

filter = [1,2,3]
df_new = df[df[column].isin(filter)]
它还我
返回了一个带有错误集的结果

我试着用任何一种,但在这里似乎不起作用。 我还查看了使用np.select或使用管道“|”发布的不同线程,但它在这里并不真正适用。是吗? 有什么建议吗

简化示例数据帧:

   column
0  [1,2]
1  [3,4]
2  [5]
3  []
4  [7,8]
5  [5,3]
预期输出(过滤1、2或3):


除非你需要更复杂的东西,否则你很接近你在熊猫中的表现

df.loc[df[column].isin([filter])]
您可以使用在创建布尔掩码的
列上应用自定义函数。此自定义函数检查系列的每个单独项,以查找此项中是否有任何元素也存在于筛选器列表中

使用:

这张照片是:

       column
0      [1, 2]
1      [3, 4]
5      [5, 3]

您可以分享一个示例输入和预期输出吗?我看到了这个错误:返回了一个带有错误集的结果,我在尝试以下方法时也看到了:selection=df[df['column'].isin(filter)]列中存储的值是列表吗?太棒了!非常感谢你。我正在考虑申请,但它看起来不像这样优雅。对于最终的输出,我做了df_new=df[m],效果非常好。
df.loc[df[column].isin([filter])]
lst = [1, 2, 3] # filter list
m = df[column].apply(lambda s: len(set(s) & set(lst)) > 0)
print(df[m])
       column
0      [1, 2]
1      [3, 4]
5      [5, 3]