python - Python iloc给出indexError:单个位置索引器在简单的for循环中超出范围
问题描述
我有如下给出的数据框:
df =
0
1 0.993995
2 1.111068
3 1.760940
.
.
.
49 40.253574
50 40.664486
51 41.083962
我正在遍历每一行并打印每个元素。我的代码如下:
for idx,row in df.iterrows():
print(df[0].iloc[idx])
目前的输出:
1.111068
1.76094
2.691832
.
.
40.664486
41.083962
Traceback (most recent call last):
File "<ipython-input-46-80539a9081e5>", line 2, in <module>
print(darkdf[0].iloc[idx])
File "C:\Users\MM\Anaconda3\lib\site-packages\pandas\core\indexing.py", line 1500, in __getitem__
return self._getitem_axis(maybe_callable, axis=axis)
File "C:\Users\MM\Anaconda3\lib\site-packages\pandas\core\indexing.py", line 2230, in _getitem_axis
self._validate_integer(key, axis)
File "C:\Users\MM\Anaconda3\lib\site-packages\pandas\core\indexing.py", line 2139, in _validate_integer
raise IndexError("single positional indexer is out-of-bounds")
IndexError: single positional indexer is out-of-bounds
为什么这个简单的功能会出错。有人可以帮助我理解错误在说什么?
解决方案
您可能想要使用loc
而不是iloc
. iloc
使用从零开始的行号,而不是索引。您的代码正在传递索引,这些索引超出了从零开始的行号的范围,因此超出了范围。
推荐阅读
- java - 如何在使用spring boot创建多个数据源时忽略setpackagestoscan中的一个或多个包
- kubernetes - Couchbase cbbackup 从远程服务器失败
- android - IllegalStateException:在 ViewPager2 有适配器之前附加 TabLayoutMediator
- templates - PRESTASHOP 1.7.6:在网站的所有页面上显示单价,而不仅仅是在产品页面上
- python - 在 python raise ValueError("Cannot convert {0!r} to Excel".format(value))
- php - Symfony 5 - Panther:无效的 cookie 域
- vue.js - Vue 动态类绑定与计算道具
- javascript - 反应条件渲染(移动视图和桌面视图)问题
- flutter - 颤动(用户界面设计)我的文本字段对其父容器的调整很糟糕
- html - Chromium 列布局和溢出隐藏隐藏文本