首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >将函数应用到Pandas行中的值列表中,为什么我只得到第一个结果?

将函数应用到Pandas行中的值列表中,为什么我只得到第一个结果?
EN

Stack Overflow用户
提问于 2020-05-15 03:19:16
回答 2查看 207关注 0票数 1

我有一个由两列组成的数据框架,我想清理第二列'tweets‘。第二列“tweets”中的每个值由一个包含大约100项的列表组成。

我想迭代每一行中的每一个列表来清理文本。

我的数据框架的示例(列表中的每一项都是带有引号的字符串):

代码语言:javascript
运行
复制
data = ({'user_id':['324','242'],
     'tweets':[["NEWS FLASH: popcorn-flavored Tic-Tacs taste as crap as you imagine.",
                 "The 1970s is here to show us the way: https:xxxx",
                 "FB needs to hurry up and add a laugh/cry button 😬😭😓🤢🙄😱"],
               ["You don't feel like hiding in your personal cave quite so much",
                "More for Cancer https://xxxx",
                "You prefer to keep things to yourself today"]]})
df=pd.DataFrame(data)

我编写了这个正则表达式来删除http tags

代码语言:javascript
运行
复制
#function to remove HTML tags 
def remove_html(mylist):
    for item in mylist:
        text =re.sub(r'http\S+','',item,flags=re.MULTILINE)
        return text

我使用以下代码应用于数据帧中的每一行:

代码语言:javascript
运行
复制
df['tweets']=df['tweets'].apply(remove_html)

问题是,当我将函数应用于数据帧时,我只得到每个列表中的第一个元素。由于某种原因,函数只返回第一个元素。

我得到的输出:

代码语言:javascript
运行
复制
0    NEWS FLASH: popcorn-flavored Tic-Tacs taste as crap as you imagine.
1    You don't feel like hiding in your personal cave quite so much     
Name: tweets, dtype: object

任何建议都会有帮助

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-05-15 03:29:10

问题在于您的remove_html()函数。

您将提前返回,并且只返回列表的第一个元素。

使用下面的函数,注意return语句是如何在for循环之外的。

代码语言:javascript
运行
复制
def remove_html(mylist): 
    return_list = [] 
    for item in mylist: 
        text = re.sub(r'http\S+','',item,flags=re.MULTILINE) 
        return_list.append(text)  
    return return_list 
票数 1
EN

Stack Overflow用户

发布于 2020-05-15 03:37:17

函数remove_html只返回第一个元素。

您可以尝试下面的代码。

代码语言:javascript
运行
复制
#function to remove HTML tags 
def remove_html(mylist):
    t = []
    for item in mylist:
        text =re.sub(r'http\S+','',item,flags=re.MULTILINE)
        t.append(text)
    return t
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61811152

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档