Python 通过传递列表对数据帧进行索引
我试图从一个DataFrame对象中选择多个值,如下所示: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循环来实现这
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
方法工作得很好。你为什么不把它作为你的答案,我会接受的。非常感谢,我知道这一定是我错过的东西!