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

如何在Pandas中将含日期字符串的多行表头转为列值

数据规整实现方案:提取日期并整理表格列

需求说明

需要将原始表格中PI No.列内的日期字符串提取为独立的Date列,同时规整其他列的数据,去除无效空行,最终得到结构清晰的目标表格。

实现步骤(基于Python Pandas)

以下是具体的代码实现和逻辑说明:

  1. 导入依赖并加载数据
    先把给定的字典数据转换成Pandas的DataFrame:
import pandas as pd
import numpy as np

# 原始数据字典
raw_data = {
    "PI No.": {
        0: "Date  :03/31/2023",
        1: "009331",
        2: "009331",
        3: "Date  :03/30/2023",
        4: "009323",
        5: "Date  :03/29/2023",
        6: "009302",
        7: "009302",
    },
    "GRN No.": {
        0: np.nan,
        1: 19614.0,
        2: 19614.0,
        3: np.nan,
        4: 19603.0,
        5: np.nan,
        6: 19576.0,
        7: 19576.0,
    },
    "Supplier Name": {
        0: np.nan,
        1: "Supplier 1",
        2: "Supplier 1",
        3: np.nan,
        4: "Supplier 2",
        5: np.nan,
        6: "Supplier 1",
        7: "Supplier 2",
    },
    "Item": {
        0: np.nan,
        1: "Item 1",
        2: "Item 2",
        3: np.nan,
        4: "Item 2",
        5: np.nan,
        6: "Item 1",
        7: "Item 2",
    },
}

df = pd.DataFrame(raw_data)
  1. 提取并填充Date列
    从PI No.列中识别包含Date的行,提取日期部分,然后用向前填充(ffill)把日期传递给下方对应的行:
# 提取日期字符串,非日期行设为NaN
df['Date'] = df['PI No.'].str.extract(r'Date\s*:(.*)')
# 向前填充,让下方行继承上方的日期
df['Date'] = df['Date'].ffill()
  1. 清理PI No.列并过滤空行
    只保留PI No.列中的纯编号(去掉带Date的行),然后过滤掉所有列都是空值的无效行:
# 保留不是日期的PI编号,其他设为NaN
df['PI No.'] = df['PI No.'].where(~df['PI No.'].str.contains('Date', na=False))
# 过滤掉PI No.为空的行(即原来的日期行)
df = df.dropna(subset=['PI No.']).reset_index(drop=True)
  1. 调整列顺序
    把Date列移到最前面,符合目标表格的结构:
# 重新排列列顺序
df = df[['Date', 'PI No.', 'GRN No.', 'Supplier Name', 'Item']]

最终效果

运行上述代码后,得到的DataFrame就和目标表格结构一致,输出结果如下:

DatePI No.GRN No.Supplier NameItem
03/31/202300933119614.0Supplier 1Item 1
03/31/202300933119614.0Supplier 1Item 2
03/30/202300932319603.0Supplier 2Item 2
03/29/202300930219576.0Supplier 1Item 1
03/29/202300930219576.0Supplier 2Item 2

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 03:42:43