将pandas多指标转入栏目

我有一个2索引级别的dataframe:

value Trial measurement 1 0 13 1 3 2 4 2 0 NaN 1 12 3 0 34 

我想把这个变成:

 Trial measurement value 1 0 13 1 1 3 1 2 4 2 0 NaN 2 1 12 3 0 34 

我怎么能最好的做到这一点?

我需要这个,因为我想按照这里的指示来聚合数据,但是如果它们被用作索引,我不能select这样的列。

reset_index()是一个pandas DataFrame方法,它将索引值作为列传递到DataFrame中。 参数的默认设置是drop = False (这会将索引值保留为列)。

您只需在.reset_index(inplace=True)的名称后添加.reset_index(inplace=True)即可:

 df.reset_index(inplace=True) 

这并不适用于你的情况,但可能对其他人(如我5分钟前)有所帮助。 如果一个人的多指标具有这样的相同的名字:

  value Trial Trial 1 0 13 1 3 2 4 2 0 NaN 1 12 3 0 34 

df.reset_index(inplace=True)将失败,导致创build的列不能具有相同的名称。

那么你需要用df.index = df.index.set_names(['Trial', 'measurement'])重命名多索引来获得:

  value Trial measurement 1 0 13 1 1 3 1 2 4 2 0 NaN 2 1 12 3 0 34 

然后df.reset_index(inplace=True)会像魅力一样工作。

我在一个名为live_date的date时间列上按年和月分组后遇到了这个问题。 然后,年份和月份都被命名为live_date,我发现的唯一build议是在索引中删除一个级别,这是我无法做到的。