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

使用Python Pandas合并日期时间列遇24:00:00问题求助

处理含24:00:00时间的日期时间合并问题

解决方案步骤:

  1. 标记时间为24:00:00的行,同时将这类时间替换为00:00:00
  2. 把日期列转为datetime格式,时间列转为timedelta格式
  3. 对标记过的行,将对应日期加1天
  4. 合并日期与时间列,生成目标Date_Time列

完整代码示例:

import pandas as pd

# 构造示例DataFrame
df = pd.DataFrame({
    'Value': [0.00, 0.01, 0.02],
    'Time': ['11:08:00', '24:00:00', '00:01:00'],
    'Date': ['30.07.2020', '30.07.2020', '31.07.2020']
})

# 标记需调整日期的行,并替换时间
df['is_next_day'] = df['Time'] == '24:00:00'
df['Time'] = df['Time'].replace('24:00:00', '00:00:00')

# 转换日期和时间格式
df['Date'] = pd.to_datetime(df['Date'], format='%d.%m.%Y')
df['Time'] = pd.to_timedelta(df['Time'])

# 对标记行的日期加1天
df.loc[df['is_next_day'], 'Date'] += pd.Timedelta(days=1)

# 合并日期和时间,生成目标列
df['Date_Time'] = df['Date'] + df['Time']

# 整理输出格式,保留需要的列并调整显示样式
df = df[['Value', 'Date_Time']]
df['Date_Time'] = df['Date_Time'].dt.strftime('%Y.%m.%d %H:%M:%S')

print(df)

输出结果:

Value           Date_Time
0   0.00  2020.07.30 11:08:00
1   0.01  2020.07.31 00:00:00
2   0.02  2020.07.31 00:01:00

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 04:50:40