gpt4 book ai didi

python - 类型错误:无法使用这些索引器对 进行标签索引

转载 作者:太空宇宙 更新时间:2023-11-03 14:51:27 24 4
gpt4 key购买 nike

我在重命名 pandas 数据框列后遇到错误:

B=pd.DataFrame(data=[[1,1,1],[2,2,2]],columns={'A','B','C'})
print(B.loc[0,'B'])
B = B.rename(index=str,columns={'B':'B_B'})
print(B.loc[0,'B_B'])

此代码导致以下输出:

> 1

>Traceback (most recent call last):
File "C:\Users\FreieL01\AppData\Local\Continuum\Anaconda3\lib\site-packages\IPython\core\interactiveshell.py", line 2881, in run_code
exec(code_obj, self.user_global_ns, self.user_ns)
File "<ipython-input-29-6df9197203b9>", line 4, in <module>
print(B.loc[0,'B_B'])
File "C:\Users\FreieL01\AppData\Local\Continuum\Anaconda3\lib\site-packages\pandas\core\indexing.py", line 1310, in __getitem__
return self._getitem_tuple(key)
File "C:\Users\FreieL01\AppData\Local\Continuum\Anaconda3\lib\site-packages\pandas\core\indexing.py", line 796, in _getitem_tuple
return self._getitem_lowerdim(tup)
File "C:\Users\FreieL01\AppData\Local\Continuum\Anaconda3\lib\site-packages\pandas\core\indexing.py", line 922, in _getitem_lowerdim
section = self._getitem_axis(key, axis=i)
File "C:\Users\FreieL01\AppData\Local\Continuum\Anaconda3\lib\site-packages\pandas\core\indexing.py", line 1482, in _getitem_axis
self._has_valid_type(key, axis)
File "C:\Users\FreieL01\AppData\Local\Continuum\Anaconda3\lib\site-packages\pandas\core\indexing.py", line 1409, in _has_valid_type
key = self._convert_scalar_indexer(key, axis)
File "C:\Users\FreieL01\AppData\Local\Continuum\Anaconda3\lib\site-packages\pandas\core\indexing.py", line 196, in _convert_scalar_indexer
return ax._convert_scalar_indexer(key, kind=self.name)
File "C:\Users\FreieL01\AppData\Local\Continuum\Anaconda3\lib\site-packages\pandas\indexes\base.py", line 1171, in _convert_scalar_indexer
return self._invalid_indexer('label', key)
File "C:\Users\FreieL01\AppData\Local\Continuum\Anaconda3\lib\site-packages\pandas\indexes\base.py", line 1284, in _invalid_indexer
kind=type(key)))
TypeError: cannot do label indexing on <class 'pandas.indexes.base.Index'> with these indexers [0] of <class 'int'>}

重命名似乎改变了我的 datafframe 对象的类型......

最佳答案

运行 df.rename(index=str, ...) 会导致您的数据帧索引被类型转换为字符串类型,因此它们将是字符串。您可以通过打印出来确认这一点。

In [19]: B.index
Out[19]: Index(['0', '1'], dtype='object')

因此,这有效:

In [18]: print(B.loc['0', 'B_B'])
1

如果你不想要这个,在重命名你的 B 列时不要传递 index 属性,就像这样:

B = B.rename(columns={'B':'B_B'})

关于python - 类型错误:无法使用这些索引器对 <class 'pandas.indexes.base.Index' > 进行标签索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45452096/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com