为什么pandas的set_index方法没有提供prepend参数?
pandas的
set_index没有prepend参数的原因及解决方案 未设计prepend参数的核心原因
- 遵循API职责单一原则:
set_index的核心定位是完成新索引设置、新索引追加到现有索引末尾的操作,索引层级重排的需求已经有专门的reorder_levels方法覆盖,新增prepend参数会造成功能重叠,反而会提升用户的学习成本,也会增加后续版本的维护负担。 - 需求覆盖优先级低:日常数据处理场景中,将新索引追加到现有索引末尾的需求占绝大多数,插入到索引头部的低频次需求完全可以通过现有方法组合实现,没必要为其单独增加参数。
实现方案
你当前使用的分步方案是完全可行的,也可以通过链式调用简化代码写法:
# 分步写法 df.set_index('new_col', append=True, inplace=True) df = df.reorder_levels(["new_col", "old_index"]) # 更简洁的链式调用写法 df = df.set_index('new_col', append=True).reorder_levels(["new_col", "old_index"])
内容的提问来源于stack exchange,提问作者mouwsy
相关产品推荐
相关产品推荐

