【发布时间】:2023-03-25 13:15:01
【问题描述】:
假设我有一个带有 MultiIndex 的 DataFrame df,它的级别为 L。
有没有办法从索引中删除 L 并重新添加它?
df = df.index.drop('L') 将 L 从 DataFrame 中完全删除(不像 df= df.reset_index() 有一个 drop 参数)。
我当然可以df = df.reset_index().set_index(everything_but_L, inplace=True)。
现在,让我们假设索引包含除 L 之外的所有内容,我想添加 L。
df.index.insert(0, df.L) 不起作用。
同样,我当然可以致电df= df.reset_index().set_index(everything_including_L, inplace=True),但感觉不对。
我为什么需要这个?由于索引不必是唯一的,因此我可能想添加一个新列,以便索引变得唯一。在拆分数据后一级索引不再包含任何信息的情况下,删除可能很有用(比如我的索引是 A,B 并且我在 A=x 的 df 上进行操作,但我不想丢失会发生的 A使用 index.droplevel('A'))。
【问题讨论】: