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

如何用Pandas将独立时分秒列合并为单个时间列并构建时序索引?

问题:创建时间列并设置索引以实现时间序列重采样

需求描述

想要创建一个单个时间列,以便通过重采样日期/时间索引来绘制时间序列图,但在合并列及设置索引时遇到问题。

已尝试的代码

读取数据及初始尝试

colnames=['time_ms','power','chisq','stations','alt','hour','min','sec','time_frac','lat','lon']
df = pd.read_csv('/data/selected_lma_matlab_20210914.txt',delim_whitespace=True, header=None, names=colnames)
# 曾尝试在读取时直接解析日期作为索引(未成功)
# df = pd.read_csv('/data/selected_lma_matlab_20210914.txt',delim_whitespace=True, header=None,names=colnames,parse_dates=[[5, 7]], index_col=0)
# df = pd.read_csv('/data/selected_lma_matlab_20210914.txt',delim_whitespace=True, header=None,names=colnames,infer_datetime_format=True,parse_dates=[[5, 6]], index_col=0)

尝试添加完整日期列

# 尝试拼接日期与时间字段,但未成功
s = df['hour'].mul(10000) + df['min'].mul(100) + df['sec']
df['date'] = pd.to_datetime('2021-09-14 ' + s.astype(int), format='%Y-%m-%d %H%M%S.%f')

创建时间列并设置索引

# 成功生成时间列,但设置索引后仍无法正常重采样
df['time'] = (pd.to_datetime(df['hour'].astype(str) + ':' + df['min'].astype(str), format='%H:%M')
         .dt.time)
df['Datetime'] = pd.to_datetime(df['time'])
df.set_index('Datetime')

统计列与重采样尝试

# 创建用于统计的标识列,尝试重采样生成时序数据
df['tot'] = 1 
df2 = df[['tot']].resample('5min').sum() 

当前问题

尽管尝试了上述多种方法,仍持续遇到日期时间格式或索引相关错误,无法完成重采样操作以生成可用的时间序列数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 15:30:42