我编写了一个函数,从文本数据(存储在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))