6

reset_index列标题是否有等价物?换句话说,如果列名是 an MultiIndex,我将如何删除其中一个级别?

4

3 回答 3

4

这是将列转换为元组的一种非常愚蠢的方法:

df.columns = list(df.columns)

你可以在此基础上得到你想要的任何东西,例如,如果你有一个 2 level MultiIndex,要删除最外层,你可以这样做:

df.columns = [col[1] for col in df.columns]

您不能对迭代进行花哨的索引,因为它正在生成元组,但您可以执行以下操作:

df.columns = MultiIndex.from_tuples([col[1:] for col in df.columns])

所以你有一些选择。

于 2013-10-21T04:43:41.930 回答
4

回答第二个问题:

df.columns = df.columns.droplevel(level)

第一个问题是@AndyHayden 指出的不是那么直截了当。仅当您的列名称与列值的类型相同时才有意义。

于 2013-10-20T16:29:36.960 回答
0

转置df,重置索引,然后再次转置。

df.T.reset_index().T

于 2019-11-01T15:53:17.293 回答