热线电话:13121318867

登录
2019-03-01 阅读量: 915
Pandas数据帧按索引切片

我试图用索引切片数据帧,但它给出错误'TypeError:'Int64Index([1],dtype ='int64')'是无效的密钥'

data = [['Alex', 10], ['Bob', 12], ['Clarke', 13]]

df = pd.DataFrame(data, columns=['Name', 'Age'])

index = df.index[df['Name'] == 'Bob']

print(index)

df = df.loc[index:]

错误:

df = df.loc[index:]

File "C:\Anaconda\lib\site-packages\pandas\core\indexing.py", line 1500, in __getitem__

return self._getitem_axis(maybe_callable, axis=axis)

File "C:\Anaconda\lib\site-packages\pandas\core\indexing.py", line 1867, in _getitem_axis

return self._get_slice_axis(key, axis=axis)

File "C:\Anaconda\lib\site-packages\pandas\core\indexing.py", line 1533, in _get_slice_axis

slice_obj.step, kind=self.name)

File "C:\Anaconda\lib\site-packages\pandas\core\indexes\base.py", line 4672, in slice_indexer

kind=kind)

File "C:\Anaconda\lib\site-packages\pandas\core\indexes\base.py", line 4871, in slice_locs

start_slice = self.get_slice_bound(start, 'left', kind)

File "C:\Anaconda\lib\site-packages\pandas\core\indexes\base.py", line 4801, in get_slice_bound

slc = self._get_loc_only_exact_matches(label)

File "C:\Anaconda\lib\site-packages\pandas\core\indexes\base.py", line 4771, in _get_loc_only_exact_matches

return self.get_loc(key)

File "C:\Anaconda\lib\site-packages\pandas\core\indexes\base.py", line 2656, in get_loc

return self._engine.get_loc(key)

File "pandas\_libs\index.pyx", line 108, in pandas._libs.index.IndexEngine.get_loc

File "pandas\_libs\index.pyx", line 110, in pandas._libs.index.IndexEngine.get_loc

TypeError: 'Int64Index([1], dtype='int64')' is an invalid key

解决办法:如果要从此索引开始获取整个数据帧,请尝试此操作:

df = df.loc[index[0]:]

如果您尝试仅按名称获取行,请尝试:

df = df[df['Name'] == 'Bob']

打印索引给出'Int64Index([1],dtype ='int64')'如何将其转换为int值。

0.0000
2
关注作者
收藏
评论(0)

发表评论

暂无数据
推荐帖子