熊猫:如何通过索引列表获取不成功的行

时间:2019-03-26 03:37:13

标签: python pandas

我正在尝试从熊猫数据框中获取多行。

df.iloc[1]

虽然下面的代码遇到错误,但可以用于一行。

df.iloc[1,3,8]

错误

  

-------------------------------------------------- ---------------------------- IndexingError Traceback(最近的调用   最后)在()   ----> 1 df.iloc [1,3,8]

     

〜/ anaconda3 / envs / tf11 / lib / python3.6 / site-packages / pandas / core / indexing.py   在 getitem (自身,密钥)1323中,除了(KeyError,   IndexError):1324通过   -> 1325返回self._getitem_tuple(key)1326 else:1327 key = com._apply_if_callable(key,self.obj)

     

〜/ anaconda3 / envs / tf11 / lib / python3.6 / site-packages / pandas / core / indexing.py   在_getitem_tuple(self,tup)中1660 def _getitem_tuple(self,   tup):1661年   -> 1662 self._has_valid_tuple(tup)1663试试:1664返回self._getitem_lowerdim(tup)

     

〜/ anaconda3 / envs / tf11 / lib / python3.6 / site-packages / pandas / core / indexing.py   在_has_valid_tuple中(自己,密钥)       i,k在枚举(密钥)中为186:       187如果我> = self.obj.ndim:   -> 188提高IndexingError('索引过多')       第189回       190 raise ValueError(“基于位置的索引只能有[%s]”

     

IndexingError:索引器太多

1 个答案:

答案 0 :(得分:0)

如果要选择多个索引,则需要将iloc的索引作为列表提供;试试这个:

df.iloc[[1,3,8]]

这实际上是原始DataFrame的子集,但请注意,该操作不是就地执行的,因此您必须分配结果才能查看反映在原始DataFrame中的更改:

df = df.iloc[[1,3,8]]