如何获取Pandas DataFrame中元素对应的BAR_DATE索引值
解决Pandas DataFrame获取指定行索引值的问题
嘿,我明白你的困惑了!你已经把BAR_DATE设为DataFrame的索引,但用cacs.iloc[5, :].index.get_values()得到的却是列名,这是因为你误解了iloc返回结果的结构。
问题原因分析
当你用iloc[5, :]提取第6行(Pandas是0起始索引)的数据时,返回的是一个Series对象。这个Series的index对应的是原DataFrame的列名(也就是Declared Date、Ex-Date这些字段),而不是你设置的BAR_DATE索引。所以你调用index.get_values()自然会得到列名数组,而不是目标索引值。
正确的解决方法
这里有几种简单高效的方式获取指定行的BAR_DATE索引值:
直接访问原DataFrame的索引
这是最直接的方法,因为索引本身就是一个可按位置访问的序列:index_value = cacs.index[5]从提取的Series中获取
name属性
如果你已经通过iloc拿到了目标行的Series,那么这个Series的name属性就是该行的索引值(也就是BAR_DATE的具体日期):row_series = cacs.iloc[5, :] index_value = row_series.name用
loc配合索引位置(可选)
如果你想先定位到行再确认索引,也可以这样写(不过这种方式不如前两种简洁):index_value = cacs.loc[cacs.index[5]].name
验证效果
假设你的DataFrame索引确实是BAR_DATE,运行前两种方法后,index_value就会是第6行对应的BAR_DATE日期值,完全匹配你的需求。
内容的提问来源于stack exchange,提问作者Dan White
相关产品推荐
相关产品推荐

