Pandas MultiIndex构建:一级为批次计数,二级为datetime对象的实现方法
构建带多层索引(MultiIndex)的Pandas DataFrame
我在如下问题上受阻已久:需要构建一个带有多层索引(MultiIndex)的Pandas DataFrame,要求第一级索引为数据批次的计数,第二级索引为对应批次下每个数据点的datetime对象,下方图片可辅助说明需求。
更新
我已经完成了目标功能的实现,虽然当前方案大概率不是最优解,但可正常运行,也欢迎大家提出更简便的实现方案。
# 生成两个数组(每个对应MultiIndex的一级索引) Outputs = 12 # 每个批次包含的日期数量(批次大小) index_arrays = [y for x in range(len(x_test_data)) for y in [x, x, x, x, x, x, x, x, x, x, x, x]] date_arrays = [df.loc[df['2012-10-31':].index.date[i] : df['2012-10-31':].index.date[i+Outputs-1]].index.date.tolist() for i in range(len(x_test_data))] # 组合两个数组 u = [] for i in range(len(date_arrays)): u.append(list(zip(*[[i,i,i,i,i,i,i,i,i,i,i,i], date_arrays[i]]))) # 展开列表简化后续操作 flatList = [item for elem in u for item in elem] # 生成MultiIndex indexer = pd.MultiIndex.from_tuples(flatList, names = ['Batches', 'Dates'])

内容的提问来源于stack exchange,提问作者TheQuant
相关产品推荐
相关产品推荐

