连接函数 删除字符串的第一个字符 |Python & Data Clean(蟒蛇和数据清理)



我编写了一个函数,从文本数据(存储在panda中的字符串(中删除图像链接

image_link_1 = 'âx80¦IMAGEâx80¦' 
image_link_2 = 'IMAGE'
def remove_image(text):
remove_im = ''.join([i for i in text if i not in image_link_1 and image_link_2])
return remove_im
df['title_and_abstract'] = df['title_and_abstract'].apply(lambda x: remove_image(x))

问题是,函数会删除某个字符串的第一个字母。特别是,该函数似乎只删除了大写字母。奇怪的

这里有一个的例子

'这是一个字符串示例。这是图片。">

使用函数后:

'his is an example string. Here is the .'

我真的不明白这个函数为什么会这么做。

提前谢谢!

  • for i in text将文本分解为单个字符;如果你想要单词,那就是for i in text.split()
  • and image_link_2检查image_link_2是否为非空,该值始终为真;你可能想要的是if i not in [image_link_1, image_link_2]

希望这些能帮助你摆脱困境?

我也是一个新的Python程序员,这就是为什么我想用自己的想法来解释答案,这可能会帮助未来观看该线程的人。

正如前面的答案正确地说的那样,原始函数只在单个字符(I,M,A,G,E(上迭代,而不在单词(IMAGE(上迭代。这还导致移除在image_link_1&2.

text.split((解决了这个问题,因为原始字符串被拆分为单词而不是字符。

工作代码:

def remove_link(text): 
remove_im = ' '.join([i for i in text.split() if i not in [image_link_1, image_link_2]])
return remove_im
df['title_and_abstract'] = df['title_and_abstract'].apply(lambda x: remove_link(x))

相关内容

  • 没有找到相关文章

最新更新