我很难弄清楚如何从 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新手,我正在尝试自动化我的团队每周执行的一些繁琐的任务。
非常感谢您的帮助!
如果它们都具有完全相同的格式,则这样做:
a = "aholiday-express-19-december-2023"
print("-".join(a.split("-")[:-3]))
对每个蛞蝓都这样做。
你的函数会像这样:
def remove_date_from_end_of_string(string):
return "-".join(string.split("-")[:-3])
逻辑是每当出现“-”时就分割字符串,然后将其连接回来,而无需最后三个元素:)
您只需输入正确的分隔符 (
-
) 并调整 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)