我有一个时间序列数据,我想重新索引它通过试验和测量。
简化后,我有这样的:
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我怎么才能做得最好呢?
发布于 2013-11-20 19:43:40
就在昨天,著名的安迪·海登( added )将这一功能添加到了0.13版的熊猫上,该版本将在任何一天发布。有关他添加到文档中的用法示例,请参见这里。
如果你很乐意从源头安装熊猫的开发版本,你现在就可以使用它。
df['Measurements'] = df.reset_index().groupby('Trial').cumcount()如果不那么简洁,下面的代码是等价的,并将适用于任何最新版本的熊猫。
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)来获得您想要的结果。
https://stackoverflow.com/questions/20104874
复制相似问题