删除熊猫df中每一行的最后一个字符

时间:2020-02-14 15:50:41

标签: 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"

3 个答案:

答案 0 :(得分:1)

只需删除for循环,即可传递一个字符串,然后遍历这些字符,并返回不包含第一个字符的第一个字符,因此返回一个空字符串。

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

尽管我不确定您是否仍然需要一个函数来执行此操作。

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

return url.rstrip("/")

答案 1 :(得分:0)

您可以使用熊猫string accessor methods

例如

first.val = 100

将修剪字符串中的最后一个字符。这样一来,您就可以对整个列进行操作,而不必一次处理一行。

答案 2 :(得分:0)

如果您的列key包含所有str类型的值,并且您想对该列应用(或更确切地说,map)该函数,则可以简单地使用{{ 1}}(或仅rstrip)而未定义函数。

假设您给定的熊猫数据框名为strip,请尝试:

df

new_keys = df['keys'].str.rstrip('/') 是熊猫系列。