You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python Pandas:仅含时间索引的DataFrame如何创建带日分段的分层多级索引

实现思路

核心逻辑是识别时间索引跨过午夜的分界点,累加分段计数后生成对应Day标签,最终替换为多级索引即可,具体实现代码如下:

import pandas as pd

# 1. 先将当前时间索引转换为Timedelta类型,方便做差值比较
# 如果你的索引已经是Timedelta类型可跳过这一步
df.index = pd.to_timedelta(df.index)

# 2. 计算跨午夜的分段计数:相邻时间差值为负即说明跨过0点,累加计数
day_count = (df.index.to_series().diff() < pd.Timedelta(0)).cumsum()

# 3. 生成D/D+1格式的标签
day_label = day_count.map(lambda x: f'D+{x}' if x != 0 else 'D')

# 4. 构造多层索引并替换原索引
df.index = pd.MultiIndex.from_arrays(
    [day_label, df.index],
    names=['Day', 'Datetime']
)

调整说明

执行后可直接打印df查看层级结构,跨0点的部分会自动被划分到下一个D+N的分段中,完全符合你给出的示例效果。如果需要调整标签命名格式,只需修改第三步lambda函数的返回值即可。

内容的提问来源于stack exchange,提问作者andyc

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 18:45:06