删除字符串中每一行的最后一个字符

2024-09-29 23:31:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个列为keys的数据帧,我需要从每个字符串中删除最后一个字符

id       keys     
123      "https://www.cosmopolitan.com/entertainment/tv/a46533/"
124      "https://www.bazaar.com/entertainment/tv/a46533/"

目前,我正在尝试创建一个返回干净字符串的函数,稍后我会将该函数应用于df。我尝试了以下方法:

url_test = "https://www.cosmopolitan.com/entertainment/tv/"

def clean_string(url):
    for string in url:
        new_string = string[:-1]
        return new_string
clean_string(url_test) 

它返回一个空字符串。我希望它返回"url_test = "https://www.cosmopolitan.com/entertainment/tv"


Tags: 函数字符串httpstestcleancomurlnew
3条回答

只需删除for循环,就可以传入一个字符串,然后对字符进行迭代,并返回第一个字符而不返回第一个字符,因此是一个空字符串

def clean_string(url):
    return url[:-1]

虽然我不确定你是否还需要一个函数来完成这项工作

如果您只是想删除尾部斜杠,您可能更喜欢使用rstrip

return url.rstrip("/")

如果您的列key包含str类型的所有值,并且您希望将函数应用于(或者更确切地说,map)该列,您可以只使用rstrip(或者只使用strip)而不定义函数

假设给定的数据帧命名为df,请尝试:

new_keys = df['keys'].str.rstrip('/')

new_keys是一个熊猫系列

您可以使用pandasstring accessor methods

例如

import pandas as pd 
test = pd.Series([
    "https://www.cosmopolitan.com/entertainment/tv/a46533/",
    "https://www.bazaar.com/entertainment/tv/a46533/"])
test = test.str[:-1]

将从字符串中删除最后一个字符。这允许您对整个列进行操作,而不是一次对一行进行操作

相关问题 更多 >

    热门问题