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

使用Python提取Excel中-与>间的不定长值及日期时间至列表

解决方案

需求明确

处理Excel文件B列的字符串数据,完成两个提取任务:

  • 从每个X-Y>[...]片段中,提取-与>之间的数字,汇总成一个列表
  • 从每个片段的方括号[]内,提取日期时间字符串,汇总成另一个列表

实现代码

用pandas读取Excel,结合正则表达式完成提取:

import pandas as pd
import re

# 替换为你的Excel文件路径
df = pd.read_excel("your_file.xlsx", usecols=["B"])

# 定义正则表达式,分别匹配目标数字和日期时间
num_regex = re.compile(r"-(\d+)>")
dt_regex = re.compile(r"\[([^\]]+)\]")

num_list = []
dt_list = []

# 遍历B列每一行内容
for content in df["B"].dropna():
    # 按"+"拆分单元格内的多个片段
    segments = content.split("+")
    for seg in segments:
        # 提取数字并转整数
        num_match = num_regex.search(seg)
        if num_match:
            num_list.append(int(num_match.group(1)))
        # 提取日期时间字符串
        dt_match = dt_regex.search(seg)
        if dt_match:
            dt_list.append(dt_match.group(1))

# 输出结果
print("提取的数字列表:", num_list)
print("提取的日期时间列表:", dt_list)

代码说明

  1. 读取Excel:指定读取B列,用dropna()跳过空行
  2. 正则匹配:
    • num_regex:精准捕获-后、>前的数字
    • dt_regex:捕获[和]之间的所有内容(即日期时间)
  3. 遍历处理:每个单元格按+拆分成独立片段,逐个匹配提取结果,分别存入对应列表

运行后会得到符合要求的两个列表:

  • 数字列表:[36, 34, 35, 65, 33, 25, 15, 35, 21, 1, 7, 55]
  • 日期时间列表:对应每个片段的时间字符串集合

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 20:33:27