You need to enable JavaScript to run this app. Pandas处理新闻爬取数据:补全缺失日期并拆分日期时间独立列
优惠活动
大模型
产品
解决方案
定价
更多

Pandas处理新闻爬取数据:补全缺失日期并拆分日期时间独立列

结合Finviz新闻页的固定列表规则(同日期新闻条目始终紧跟当日首条带完整时间戳的行,整体按时间倒序排列),用以下Pandas逻辑就能完成全部清洗,完全匹配补全要求:

实现逻辑

  • 先识别所有带完整日期前缀的行(规则:单元格内容包含空格,即「日期 时间」的组合格式),提取出对应的日期值,其余行的日期位置暂留空
  • 对提取出的临时日期列执行向前填充,让同组缺失日期的条目自动继承上一行的日期值
  • 提取每行的纯时间部分,与填充后的日期值拼接为完整时间格式
  • 最终拆分生成独立的日期、时间字段

可直接复用的代码

在你现有爬取逻辑之后追加以下代码即可适配:

# 强制将Date列转为字符串类型,避免混合格式报错
news['Date'] = news['Date'].astype(str)

# 提取完整行的日期前缀,非完整行留空
news['group_date'] = news.loc[news['Date'].str.contains(' '), 'Date'].str.split(n=1).str[0]

# 向前填充所有缺失的日期值
news['group_date'] = news['group_date'].ffill()

# 提取每行的纯时间部分(无论原格式是否带日期前缀)
news['time_part'] = news['Date'].str.split(n=1).str[-1]

# (可选)生成保留完整「日期+时间」组合的字段
news['full_datetime'] = news['group_date'] + ' ' + news['time_part']

# 替换原Date列为纯日期格式,新增独立的Time时间列
news['Date'] = news['group_date']
news['Time'] = news['time_part']

# 清理临时辅助列
news = news.drop(columns=['group_date', 'time_part'])

适配性说明

  • 匹配你给出的示例数据时,第一行提取的group_date为Feb-23-21,后续9行纯时间条目会自动继承这个日期,拼接后完全符合预期的补全效果
  • 当读到第10行的完整时间戳Feb-22-21 07:00PM时,临时日期值会自动更新为新日期,后续同组条目会匹配到这个新日期,不会出现填充错位

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.02 05:15:01