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

如何用Python为单列中每个特定时间批量添加1-6小时Timedelta

解决时间序列生成问题的方案

首先,咱们先梳理下原代码里的几个关键问题,导致你拿不到预期结果:

  1. 你把duration列转成了字符串格式,这就没法直接进行时间增量运算了——字符串和timedelta是没法相加的,这是核心问题之一。
  2. 自定义的time函数逻辑混乱:循环没正确遍历要添加的小时数,而且最后没有返回生成的序列,自然输出都是空值。

修正后的完整步骤代码

咱们重新调整代码,从第一步开始优化,确保类型正确,然后实现时间序列生成:

import pandas as pd
import numpy as np

# 假设你的原始data已经加载完成,先处理第一步:X3=5的时间转为00:00:00
# 先把date+time转成datetime类型,方便后续处理
data['full_datetime'] = pd.to_datetime(data['date'] + " " + data['time'], format='%d/%m/%Y %H:%M:%S', dayfirst=True)

# 处理X3=5的情况:把对应的时间部分设为00:00:00,得到新的datetime
data['adjusted_datetime'] = np.where(
    data['X3'].eq(5),
    data['full_datetime'].dt.normalize(),  # 把时间部分转为00:00:00
    data['full_datetime']
)

# 提取所有时间为00:00:00的行(也就是adjusted_datetime的时间部分是00:00:00)
target_rows = data[data['adjusted_datetime'].dt.time == pd.to_datetime('00:00:00').time()]

# 定义函数:为每个目标时间生成00:00:00到06:00:00的序列(含原时间+加1到6小时)
def generate_time_series(datetime_val):
    # 生成从0到6小时的增量
    hours_added = pd.to_timedelta(np.arange(7), unit='h')
    # 生成对应的时间序列
    time_series = datetime_val + hours_added
    # 如果需要转成时间字符串格式,就用下面这行;否则保留datetime类型
    return time_series.dt.strftime('%H:%M:%S').tolist()

# 为每个目标行生成时间序列
target_rows['generated_times'] = target_rows['adjusted_datetime'].apply(generate_time_series)

# 如果你想把生成的序列展开成单独的行(每个时间占一行),可以用explode
expanded_data = target_rows.explode('generated_times').reset_index(drop=True)

# 输出结果
print(expanded_data[['adjusted_datetime', 'generated_times']])

关键优化点说明

  • 保留时间类型:全程用datetime类型处理,避免转成字符串,这样时间增量运算才可行。
  • 简化时间调整逻辑:用dt.normalize()直接把datetime的时间部分转为00:00:00,比手动处理字符串更可靠。
  • 正确生成时间序列:通过pd.to_timedelta生成0到6小时的增量列表,直接和原datetime相加,一次得到所有需要的时间,再按需转成字符串格式。
  • 可选展开行:用explode可以把每个列表里的时间拆成单独的行,方便后续分析或保存。

预期输出示例

假设你有一行adjusted_datetime是2024-05-20 00:00:00,那么生成的generated_times会是['00:00:00', '01:00:00', '02:00:00', '03:00:00', '04:00:00', '05:00:00', '06:00:00'],如果用explode后,这行会变成7行,每行对应一个时间。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 07:56:59