使用Pandas获取ColumnB最后有效单元格索引及idxmax报错解决
解决Pandas中获取列最后有效单元格索引的问题
我需要遍历DataFrame的所有行并提取值,核心需求是拿到ColumnB列最后一个有效单元格的索引(对应示例数据里的索引3)。
一开始误用了df['columnNameB'].idxmax(),结果触发报错:
reduction operation 'argmax' not allowed for this dtype
尝试添加axis=1或axis='columns'参数后也没能解决问题。后来才反应过来,idxmax()的作用是找Series中最大值对应的索引,而我的列是字符串类型,且需求根本不是找最大字符串,而是最后一个非NaN值的位置,完全用错了方法。
示例数据:
columnA columnB columnC 0 book www.amazon.com=page?1.. onstock 1 headphone www.amazon.com=page?1.. outstock 2 NaN www.alibaba.com.. NaN 3 NaN www.amazon.... NaN 4 lightbulb NaN inStock
最终通过Series的last_valid_index()方法解决了问题,这个方法会直接返回列中最后一个非空(非NaN)值的索引:
fileCSV['columnURLnames'].last_valid_index()
执行后得到预期的索引3,顺利完成行遍历的需求。
内容的提问来源于stack exchange,提问作者xlmaster
相关产品推荐
相关产品推荐

