涉及列表的python过滤
我目前正在Python2.7中使用Pandas。我的数据帧与此类似:涉及列表的python过滤,python,pandas,Python,Pandas,我目前正在Python2.7中使用Pandas。我的数据帧与此类似: >>> df 0 1 [1, 2] 2 [2, 3] 3 [4, 5] 是否可以按列1中的值筛选行?例如,如果我的筛选器值为2,则筛选器应返回包含前两行的数据帧 我已经试过几种方法了。我能想到的最好的办法是执行列表理解,返回值所在行的索引。然后,我可以用索引列表过滤数据帧。但是,如果我想用不同的值过滤多次,这将非常缓慢。理想情况下,我希望使用内置函数来加快进程 您可以使用: 您可以使用
>>> df
0
1 [1, 2]
2 [2, 3]
3 [4, 5]
是否可以按列1中的值筛选行?例如,如果我的筛选器值为2,则筛选器应返回包含前两行的数据帧
我已经试过几种方法了。我能想到的最好的办法是执行列表理解,返回值所在行的索引。然后,我可以用索引列表过滤数据帧。但是,如果我想用不同的值过滤多次,这将非常缓慢。理想情况下,我希望使用内置函数来加快进程 您可以使用:
您可以使用:
您还可以将布尔索引用于列表理解:
>>> df[[2 in row for row in df['0']]]
0
0 [1, 2]
1 [2, 3]
您还可以将布尔索引用于列表理解:
>>> df[[2 in row for row in df['0']]]
0
0 [1, 2]
1 [2, 3]
令人惊叹的!谢谢你的帮助。这比我以前做的要快得多。我在想象会有一个类似于df[0]中的df[2]的答案。太棒了!谢谢你的帮助。这比我以前做的要快得多。我想象会有一个类似于df[0]中df[2]的答案。你可以使用
np.in1d
来搜索多个值。你可以使用np.in1d
来搜索多个值,如:的答案所示。