使用map在pandas数据帧列上应用函数

2024-04-25 09:11:27 发布

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

我是第一次做情绪分析。我在分析yelp评论。在将评论写入csv文件之前,我已将其转换为一个列表。我对这些评论有一些编码问题,所以我运行这段代码。在

df['newtext'] = map(lambda x: x.decode('latin-1').encode('ascii','ignore'),df['comment'])

这将创建一个新的列(newtext),但是我得到的不是干净的文本而是这个消息

位于0x000001C1B9CE07F0的映射对象

我使用的是python3。请帮忙。谢谢你


Tags: 文件csvlambda代码map编码df列表
3条回答

Python的map函数返回map对象,这些对象需要转换为列表。Example

所以,您只需将map()调用转换为list()

df['newtext'] = list(map(lambda x: x.decode('latin-1').encode('ascii','ignore'),df['comment']))

这是pandasmap会减慢速度,尤其是对于大型数据帧。您应该知道,字符串列提供了比映射和循环快得多的向量化方法。在

泛泛的方法是调用str访问器方法encode和{},它们做的事情完全相同,但速度更快。在

df['newtext'] = df.comments.str.decode('latin-1').str.encode('ascii','ignore')

试试这个。它将映射对象转换为列表。在

df['newtext'] = list(map(lambda x: x.decode('latin-1').encode('ascii','ignore'),df['comment']))

相关问题 更多 >

    热门问题