Python获取DataFrame前两列最后10行报错:RangeIndex无iloc属性
解决‘RangeIndex' object has no attribute 'iloc’错误
嘿,我来帮你搞定这个问题!你遇到的错误是因为代码里多了一步不必要的.index调用,咱们一步步拆解来看:
错误原因分析
你写的代码是:
index.tail(10).index.iloc[:,0:2]
这里的index.tail(10)确实正确获取了DataFrame的最后10行,但紧接着的.index会把这个子DataFrame转换成它的行索引对象(默认是RangeIndex类型),而索引对象根本没有iloc方法——iloc是DataFrame和Series的专属方法,用来按位置选择数据。这就是报错的根源。
正确的写法
你需要直接对tail(10)返回的DataFrame对象使用iloc来选取前两列,去掉多余的.index就行:
# 方式一:用iloc按位置选前两列 index.tail(10).iloc[:, 0:2]
如果你的DataFrame前两列有明确的列名,也可以直接用列名选取,可读性更强:
# 方式二:替换成实际的列名 index.tail(10)[['column_name_1', 'column_name_2']]
这样就能顺利得到你想要的结果啦!
内容的提问来源于stack exchange,提问作者nupur raghav
相关产品推荐
相关产品推荐

