我试图用索引切片数据帧,但它给出错误'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值。








暂无数据