这似乎相当明显,但我似乎无法弄清楚如何将数据框的索引转换为列?
例如:
df=
gi ptt_loc
0 384444683 593
1 384444684 594
2 384444686 596
至,
df=
index1 gi ptt_loc
0 0 384444683 593
1 1 384444684 594
2 2 384444686 596
4 回答
对于MultiIndex,您可以使用提取其子索引
其中
si_name
是子索引的名称 .为了更清晰,让我们看一下其索引中有两个级别的DataFrame(MultiIndex) .
使用默认参数调用的
reset_index
方法将所有索引级别转换为列,并使用简单的RangeIndex
作为新索引 .使用
level
参数控制将哪些索引级别转换为列 . 如果可能,请使用更明确的级别名称 . 如果没有级别名称,则可以通过其整数位置引用每个级别,该位置从外部开始为0 . 您可以在此处使用标量值,也可以使用要重置的所有索引的列表 .在极少数情况下,您希望保留索引并将索引转换为列,您可以执行以下操作:
如果要使用
reset_index
方法并保留现有索引,则应使用:或者改变它:
例如:
如果你想摆脱索引标签你可以做:
之一:
或者,.reset_index:
所以,如果你有一个具有3个索引级别的多索引框架,例如:
并且您希望将索引中的第一个(
tick
)和第三个(obs
)级别转换为列,您可以这样做: