使用Python脚本从Excel文件中的slugs中删除日期

问题描述 投票:0回答:2

我很难弄清楚如何从 Excel 文件的 slug 末尾删除日期,我正在尝试清理该文件以自动化我们一项任务的流程。

这是蛞蝓的样子:

收费公路游吟诗人-2023 年 12 月 14 日

摇滚乐团-2023 年 11 月 20 日

2023 年 12 月 12 日蒂娜·蒂娜·特纳致敬秀的一晚

达琳爱-2023 年 12 月 15 日

蒙茅斯公民合唱团-欢欣鼓舞-2023 年 12 月 17 日

假日快车-2023 年 12 月 19 日

黑人诞生 - 2023 年 12 月 30 日

我希望它们看起来像:

收费公路游吟诗人

摇滚乐团

蒂娜·蒂娜·特纳致敬秀一晚

达琳爱

蒙茅斯公民合唱团-非常高兴

假日快车

黑人诞生

我尝试了在互联网上找到的各种代码,例如:

def remove_date_from_end_of_string(string):
    return string.rsplit(' ', 1)[0]
    return df

outlinks_df['Artist Path'] = outlinks_df['Artist Path'].apply(remove_date_from_end_of_string)

艺术家路径是文件中需要清理的列。 当我尝试这个公式时,我不断收到错误,老实说,我不确定它在做什么。

我是Python新手,我正在尝试自动化我的团队每周执行的一些繁琐的任务。

非常感谢您的帮助!

python pandas excel datetime formula
2个回答
0
投票

如果它们都具有完全相同的格式,则这样做:

a = "aholiday-express-19-december-2023"
print("-".join(a.split("-")[:-3]))

对每个蛞蝓都这样做。

你的函数会像这样:

def remove_date_from_end_of_string(string):
    return "-".join(string.split("-")[:-3])

逻辑是每当出现“-”时就分割字符串,然后将其连接回来,而无需最后三个元素:)


0
投票

您只需输入正确的分隔符 (

-
) 并调整
maxsplit
str.rsplit
:

def remove_date_from_end_of_string(string):
    return string.rsplit('-', 3)[0] # <-- line updated

outlinks_df['Artist Path'] = (
    outlinks_df['Artist Path'].apply(remove_date_from_end_of_string)
)

输出:

                                    Artist Path
0                          turnpike-troubadours
1                            the-rock-orchestra
2  one-night-of-tina-a-tina-turner-tribute-show
3                                  darlene-love
4         monmouth-civic-chorus-rejoice-greatly
5                               holiday-express
6                                black-nativity

注意,您可以避免使用自定义函数并使用 pandas 字符串方法 :

outlinks_df['Artist Path'].str.rsplit("-", n=3).str[0]

outlinks_df['Artist Path'].str.replace("-\d{2}-\w+-\d{4}$", "", regex=True)
© www.soinside.com 2019 - 2024. All rights reserved.