将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议是在索引中删除一个级别,这是我无法做到的。