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

如何将Pandas的10分钟时间戳转换为时间范围并拼接列

解决方法:为10分钟粒度时间戳生成时间范围列

嘿,这个需求用Pandas处理起来超简单!我给你一步步拆解操作,还附了完整示例代码,你直接套用就行:

步骤1:确保时间列是Timestamp类型

首先得确认你的时间列已经是Pandas的Timestamp类型,如果不是的话,先转一下:

import pandas as pd
# 假设你的时间列叫original_time
df['original_time'] = pd.to_datetime(df['original_time'])

步骤2:计算时间范围的起始值

用pd.Timedelta给每个时间戳减去10分钟,生成起始时间列:

df['start_time'] = df['original_time'] - pd.Timedelta(minutes=10)

步骤3:拼接成时间范围格式的列

接下来把起始时间和原时间戳拼接成你需要的格式,这里有两种常用方式:

方式1:直接用字符串拼接(默认ISO格式)

df['time_range'] = df['start_time'].astype(str) + ' - ' + df['original_time'].astype(str)

方式2:自定义时间显示格式

如果想要更简洁的格式(比如只显示年月日时分),用dt.strftime来定制:

# 比如格式化为YYYY-MM-DD HH:MM
df['time_range'] = df['start_time'].dt.strftime('%Y-%m-%d %H:%M') + ' → ' + df['original_time'].dt.strftime('%Y-%m-%d %H:%M')

完整示例代码

我给你写了个可直接运行的示例,方便你理解整个流程:

import pandas as pd

# 生成测试数据:10分钟粒度的时间序列
timestamps = pd.date_range(start='2024-01-01 00:00', end='2024-01-01 01:00', freq='10T')
df = pd.DataFrame({'original_time': timestamps})

# 步骤1:确保时间列是Timestamp(这里生成的已经是,所以可省略)
# df['original_time'] = pd.to_datetime(df['original_time'])

# 步骤2:计算起始时间
df['start_time'] = df['original_time'] - pd.Timedelta(minutes=10)

# 步骤3:拼接时间范围
df['time_range'] = df['start_time'].dt.strftime('%Y-%m-%d %H:%M') + ' - ' + df['original_time'].dt.strftime('%Y-%m-%d %H:%M')

# 查看结果
print(df)

运行后你会得到这样的输出:

original_time          start_time          time_range
0 2024-01-01 00:00:00 2023-12-31 23:50:00  2023-12-31 23:50 - 2024-01-01 00:00
1 2024-01-01 00:10:00 2024-01-01 00:00:00  2024-01-01 00:00 - 2024-01-01 00:10
2 2024-01-01 00:20:00 2024-01-01 00:10:00  2024-01-01 00:10 - 2024-01-01 00:20
3 2024-01-01 00:30:00 2024-01-01 00:20:00  2024-01-01 00:20 - 2024-01-01 00:30
4 2024-01-01 00:40:00 2024-01-01 00:30:00  2024-01-01 00:30 - 2024-01-01 00:40
5 2024-01-01 00:50:00 2024-01-01 00:40:00  2024-01-01 00:40 - 2024-01-01 00:50
6 2024-01-01 01:00:00 2024-01-01 00:50:00  2024-01-01 00:50 - 2024-01-01 01:00

小提示

  • 如果你的时间粒度不是固定10分钟,只需要把pd.Timedelta(minutes=10)里的数值改成对应的分钟数就行
  • 拼接时的分隔符(比如-或者→)可以根据你的需求随意调整

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 09:18:24