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

如何使用Python Pandas修复包含两种行数据格式的DataFrame

解决方法

你可以通过识别日期表头行、向下填充日期、过滤冗余表头行三步完成转换,完整实现代码如下:

import pandas as pd
import re

# 生成测试数据
df = pd.DataFrame({
    'a': ['26/9/21', '10:00', '12:00', '27/9/21', '1:00'], 
    'b': ['26/9/21', 'Paul', 'John', '27/9/21', 'Ringo']
})

# 1. 识别日期表头行:匹配「日/月/年」格式的行,也可简化用 `df['a'] == df['b']` 直接适配当前测试场景
date_mask = df['a'].str.match(r'^\d{1,2}/\d{1,2}/\d{2}$')

# 2. 新增日期列,将表头的日期向下填充到所有对应业务行
df['date'] = df['a'].where(date_mask).ffill()

# 3. 过滤掉原有的日期表头行,调整列顺序得到最终结果
result = df[~date_mask][['date', 'a', 'b']].reset_index(drop=True)

# 输出结构化结果
print(result)

运行上述代码输出如下,和你期望的格式一致:

date      a      b
0  26/9/21  10:00   Paul
1  26/9/21  12:00   John
2  27/9/21   1:00  Ringo

如果需要导出为和示例完全一致的空格分隔纯文本,可以补充调用以下代码:

print(result.to_csv(sep='\t', header=False, index=False))

内容的提问来源于stack exchange,提问作者Jeremy K.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 05:36:06