Python 通过传递列表对数据帧进行索引

Python 通过传递列表对数据帧进行索引,python,numpy,pandas,Python,Numpy,Pandas,我试图从一个DataFrame对象中选择多个值,如下所示: Int64Index: 100 entries, 0 to 99 Data columns (total 6 columns): Cell 68 non-null values Sequence Protocol 68 non-null values dtypes: float64(2), object(4) 我想根据单元格列中的值选择多个值。我知道如何通过在数据上运行for循环来实现这

我试图从一个DataFrame对象中选择多个值,如下所示:

Int64Index: 100 entries, 0 to 99
Data columns (total 6 columns):
Cell                  68  non-null values
Sequence Protocol     68  non-null values
dtypes: float64(2), object(4) 
我想根据单元格列中的值选择多个值。我知道如何通过在数据上运行for循环来实现这一点,但我发现这很笨拙

理想情况下,我希望传递一个“单元”列表,以返回另一个数据帧对象

示例输出如下所示:

idx = cell_info.Cell == ['1','3','5']
np.where(cell_info.Cell == data.keys())
np.where(cell_info.Cell == list(data.keys()))
对于
idx
,将给出以下内容:

0    True
1   False
2    True
3   False
4    True
5   False
6   False
...
对于
np.sum(idx)
将等于
3

我已尝试按单元格重新编制索引:

cell_info.reindex(index=cell_info.Cell)
这将导致空数据帧

我尝试传递以下内容以获取索引,其中data.keys()是我要索引的单元格列表:

idx = cell_info.Cell == data.keys()
这将导致所有值都为False,即
np。sum(idx)
将产生
0
(但如果我单独调用它们,则不会产生)

如果我这样做:

idx = cell_info.Cell == ['1','3','5']
np.where(cell_info.Cell == data.keys())
np.where(cell_info.Cell == list(data.keys()))
但是,如果执行以下操作,它将返回空数组:

idx = cell_info.Cell == ['1','3','5']
np.where(cell_info.Cell == data.keys())
np.where(cell_info.Cell == list(data.keys()))
它给出了一个错误:

ValueError: Arrays were different lengths: 100 vs 19

如果您能解释一下将列表传递到索引的适当方式是什么,以及为什么在最后两个调用中存在差异,那就太好了

编辑您的问题,将实际数据包括在
单元格信息中
以及您想要的结果。如果您无法共享cell_info中的数据,请举一个小例子来说明问题。作为猜测,我认为
query
isin
方法就是您要寻找的方法,但是如果没有一个例子,我不能肯定。是的
isin
方法工作得很好。你为什么不把它作为你的答案,我会接受的。非常感谢,我知道这一定是我错过的东西!