Pandas如何获取df.iloc[10]对应的行整数位置索引值10
解决方案
你创建的DataFrame默认使用从0开始的连续整数作为行索引,df.iloc[10] 取到的是第11行(整数位置从0计数),对应行索引值本身就是10,你之前直接调用df.index返回的是全量索引数组,没有指定对应行所以拿不到目标值,可通过以下两种方法实现需求:
方法1:取行Series的name属性
iloc 取单行会返回一个Series对象,该对象的name属性就是对应行的索引值:
import pandas as pd import numpy as np df = pd.DataFrame({'a':np.arange(1,12)}) pos_value = df.iloc[10].name print(pos_value) # 输出10,类型为int
方法2:直接对索引取指定位置的值
如果你不需要取整行数据,只需要拿到第n个整数位置对应的索引值,可以直接对df.index做索引:
pos_value = df.index[10] print(pos_value) # 输出10
补充说明
如果后续你对df做过筛选、重置索引等操作导致行索引不是默认的连续整数,以上两种方法依然生效:
- 方法1始终返回你取到的那一行的实际行索引值
- 方法2始终返回指定整数位置对应的行索引值
内容的提问来源于stack exchange,提问作者bulklodd
相关产品推荐
相关产品推荐

