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

基于下划线位置提取图片路径日期时间并转换为datetime类型

按下划线位置提取图片路径中的日期时间

场景说明

有一个仅包含ImagePath列的DataFrame,示例路径如下:

Images/LINE 58/AGSD/LUC/L58_AFND_K3_2022-10-12_23-53-18_Color_ID_511.jpg

需要提取其中的日期时间字符串:

2022-10-12_23-53-18

原代码依赖Color关键词实现提取,现需改为通过下划线位置(提取第3个到第5个下划线之间的内容)完成,避免关键词变化导致失效。


解决方案

方法1:正则表达式匹配下划线位置

直接用正则定位下划线位置提取目标片段,无需依赖固定关键词:

import pandas as pd

# 提取日期时间字符串列
dfColor['DateTimeStr'] = dfColor['ImagePath'].str.extract(r'(?:[^_]*_){3}([^_]*_[^_]*)', expand=False)
# 转换为datetime类型
dfColor['DateTime'] = pd.to_datetime(dfColor['DateTimeStr'], format='%Y-%m-%d_%H-%M-%S')

正则逻辑:

  • (?:[^_]*_){3}:匹配3组「非下划线字符+下划线」,精准定位到第3个下划线的位置
  • ([^_]*_[^_]*):捕获后续包含一个下划线的片段,即目标日期时间字符串

方法2:拆分字符串后取对应片段

拆分路径和文件名,再按下划线拆分取指定位置元素拼接,逻辑更直观易维护:

import pandas as pd

# 拆分路径取文件名,再按下划线拆分所有部分
split_parts = dfColor['ImagePath'].str.split('/').str[-1].str.split('_')
# 取第3、4个元素(索引从0开始)拼接成日期时间字符串
dfColor['DateTimeStr'] = split_parts.str[3] + '_' + split_parts.str[4]
# 转换为datetime类型
dfColor['DateTime'] = pd.to_datetime(dfColor['DateTimeStr'], format='%Y-%m-%d_%H-%M-%S')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 06:55:18