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

使用Python脚本移除Excel文件中Slug末尾的日期

移除Slug末尾日期的解决方案

原代码的问题分析

你用的代码逻辑完全不匹配你的Slug格式:

  • rsplit(' ', 1)[0]是按空格分割字符串,但你的Slug是用**连字符(-)**分隔的,根本找不到空格,自然会报错。
  • 函数里的第二个return df永远不会执行,属于无效代码。

两种可行的实现方法

你的Slug末尾日期都是-数字-月份-年份的固定结构,针对这个特征可以用以下两种方法:

方法1:按连字符分割截取(简单直接)

利用rsplit('-', 3)从字符串末尾开始按-分割3次,把最后三个日期相关的部分去掉,再拼接剩余部分:

def remove_date_from_slug(slug):
    # 从末尾分割3次,取除最后3部分外的内容拼接
    return '-'.join(slug.rsplit('-', 3)[:-3])

# 应用到DataFrame的目标列
outlinks_df['Artist Path'] = outlinks_df['Artist Path'].apply(remove_date_from_slug)

方法2:正则表达式替换(更灵活)

如果日期格式可能有细微变化(比如日期是1位、月份是缩写),用正则匹配末尾的日期结构更稳妥:

import re

def remove_date_from_slug(slug):
    # 匹配末尾的"-数字-英文月份-四位年份"结构
    return re.sub(r'-(\d{1,2})-([a-zA-Z]+)-(\d{4})$', '', slug)

# 应用到DataFrame的目标列
outlinks_df['Artist Path'] = outlinks_df['Artist Path'].apply(remove_date_from_slug)

异常处理(可选)

如果你的数据里存在没有日期的Slug,可以加个判断避免报错:

def remove_date_from_slug(slug):
    parts = slug.rsplit('-', 3)
    # 只有当分割后至少有4个部分时,才移除末尾日期
    if len(parts) >= 4:
        return '-'.join(parts[:-3])
    # 否则直接返回原字符串
    return slug

测试效果

用你提供的示例Slug测试,两种方法都能得到期望结果:

  • 输入:one-night-of-tina-a-tina-turner-tribute-show-12-december-2023
  • 输出:one-night-of-tina-a-tina-turner-tribute-show

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 03:16:02