大熊猫数据帧多索引的重新索引

时间:2013-11-20 19:15:29

标签: python pandas dataframe multi-index

我有一个时间序列数据框,我想通过试验和测量重新索引它。

简化,我有这个:

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

我想谈谈这个:

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

我怎样才能做到最好?

1 个答案:

答案 0 :(得分:7)

就在昨天,杰出的Andy Hayden将此功能添加到0.13版的大熊猫中,现在任何一天都会发布。有关他添加到文档中的用法示例,请参阅here

如果您愿意从源代码安装pandas的开发版本,可以立即使用它。

df['Measurements'] = df.reset_index().groupby('Trial').cumcount()

以下代码是等效的,如果不那么简洁,并且适用于任何最新版本的pandas。

grouped = df.reset_index().groupby('Trial')
df['Measurements'] = grouped.apply(lambda x: Series(np.arange(len(x)), x.index))

最后,df.set_index(['Trial', 'Measurements'], inplace=True)获得您想要的结果。