为什么set_index中没有preend参数?

  • 本文关键字:preend 参数 index set pandas
  • 更新时间 :
  • 英文 :


df.set_index()有一个append参数,用于向现有索引添加列。但是没有preend参数可以将列添加到现有索引中。为什么没有preend参数?我知道规避这个问题的唯一方法是在使用.set_index()之后使用.reorder_levels():

df.set_index('new_col', append=True, inplace=True)
df = df.reorder_levels(["new_col", "old_index"])

根据熊猫的一个开发人员(强调添加):

我不认为有appendprepend使一个好的API,特别是因为它现在不涵盖用户可能想要插入到中间的用例多索引的。最初的想法是将level作为int与append一起提供可能是最有意义的,尽管在我看来仍然不理想。

所以开发者愿意在set_index中考虑这种类型的功能,只是而不是通过prepend参数。关于适当API的讨论在issue #26742中继续进行。

还请注意,除了reorder_levels之外,问题#26742还提供了几个替代方案:

  • .reset_index().set_index(...)
  • .set_index(append=True).swaplevel(...)
  • .set_index(append=True).reorder_levels(...)

最新更新