如何编写函数计算Pandas DataFrame指定索引到最后一行的间隔行数
实现方案
你可以直接利用Pandas索引内置的get_loc()方法获取指定索引的位置,通过简单计算即可得到结果,代码简洁且符合Pandas的惯用写法:
import pandas as pd # 初始DataFrame定义 d = {'col1': [1, 2, 3, 4, 5], 'col2': [6, 7, 8, 9, 10]} df = pd.DataFrame(data=d) df.index=['A', 'B', 'C', 'D', 'E'] def getNrRows(fromIndex): # 获取传入索引对应的下标位置(从0开始计数) start_pos = df.index.get_loc(fromIndex) # 间隔行数 = 总行数 - 起始下标 - 1 return len(df) - start_pos - 1
验证测试
print(getNrRows("C")) # 输出 2,符合示例要求 print(getNrRows("A")) # 输出 4 print(getNrRows("E")) # 输出 0
注意事项
- 如果传入的索引值不存在于DataFrame的索引中,方法会自动抛出
KeyError,符合常规错误处理逻辑,无需额外判断。 - 该实现仅适用于索引值唯一的场景,如果你的DataFrame存在重复索引,需要额外调整逻辑适配。
内容的提问来源于stack exchange,提问作者edn
相关产品推荐
相关产品推荐

