修改sktime所用pd-multiindex数据集的instances起始索引
修改sktime用MultiIndex数据集的instances索引范围
现有用于sktime库的Pandas MultiIndex格式数据集,结构如下:
instances time points a b 0 0 2 -2 1 1 -1 2 1 -2 3 -2 2 4 -2 2 ... .. .. 826 9 -1 1 10 -1 0 11 1 0 12 -1 1 13 2 -2其中
instances和time points构成多级索引,需要将instances的起始索引从0改为826,结束索引变为1652(即原索引值整体加826)。
实现步骤
可以通过两种简洁的方式修改instances层级的索引值:
方法1:重新构建MultiIndex
import pandas as pd # 假设你的数据集为df # 提取原instances索引并加上偏移量826 new_instance_vals = df.index.get_level_values('instances') + 826 # 重新生成多级索引 new_index = pd.MultiIndex.from_arrays( [new_instance_vals, df.index.get_level_values('time points')], names=['instances', 'time points'] ) # 替换原索引 df.index = new_index
方法2:直接修改索引层级值
利用set_levels方法直接更新instances层级的数值,代码更简洁:
import pandas as pd # 直接修改instances层级的索引值,整体加826 df.index = df.index.set_levels( df.index.get_levels('instances') + 826, level='instances' )
验证结果
执行完上述代码后,可以通过以下命令确认索引范围是否符合要求:
# 查看instances索引的唯一值范围 print(df.index.get_level_values('instances').unique())
输出应显示从826到1652的连续索引值。
内容的提问来源于stack exchange,提问作者Coleman YU
相关产品推荐
相关产品推荐

