Python 使用map在dataframe列上应用函数

Python 使用map在dataframe列上应用函数,python,pandas,lambda,Python,Pandas,Lambda,我第一次做情绪分析。我正在分析yelp评论。在将评论写入csv文件之前,我已将其转换为列表。我在这些评论中遇到了一些编码问题,所以我正在运行这些代码 df['newtext'] = map(lambda x: x.decode('latin-1').encode('ascii','ignore'),df['comment']) 这将创建一个新列(newtext),但我得到的不是干净的文本,而是此消息 将对象映射到0x000001C1B9CE07F0 我正在使用Python3。请帮忙。谢谢试试这

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

df['newtext'] = map(lambda x: x.decode('latin-1').encode('ascii','ignore'),df['comment'])
这将创建一个新列(newtext),但我得到的不是干净的文本,而是此消息

将对象映射到0x000001C1B9CE07F0


我正在使用Python3。请帮忙。谢谢

试试这个。它将贴图对象转换为列表

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

只需将map对象转换为如下所示的列表

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

Python的
map
函数返回需要转换为列表的映射对象

因此,您可以在
list()中强制执行
map()
调用


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

pandaic的方法是调用
str
访问器方法-
encode
decode
,这两种方法的作用完全相同,但速度要快得多

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

AttributeError:只能使用带有字符串值的.str访问器,该访问器在pandas@Analyticsbeginner嗯
df.comments.astype(str).str.decode('latin-1').str.encode('ascii','ignore')
error:只能使用带字符串值的.str访问器,它在pandas@Analyticsbeginner抱歉,无法在不查看数据外观的情况下帮助您。但不管是什么,不要使用其他方法。它们速度很慢。我发现这个错误“str”对象没有属性“decode”
df['newtext'] = df.comments.str.decode('latin-1').str.encode('ascii','ignore')