我是第一次做情绪分析。我正在分析yelp评论。在将评论写入csv文件之前,我已将评论转换为列表。我对这些评论有一些编码问题所以我正在运行此代码。
df['newtext'] = map(lambda x: x.decode('latin-1').encode('ascii','ignore'),df['comment'])
这会创建一个新列(newtext),但我没有收到干净的文本,而是收到此消息
将对象映射到0x000001C1B9CE07F0
我正在使用python 3.请帮助。谢谢
答案 0 :(得分:1)
Python的map
函数返回地图对象,需要将其转换为列表。 Example
因此,您可以在列表()
中转换map()调用df['newtext'] = list(map(lambda x: x.decode('latin-1').encode('ascii','ignore'),df['comment']))
答案 1 :(得分:1)
这是pandas
。 map
会减慢速度,特别是对于大型数据帧。您应该知道字符串列提供了矢量方法,这些方法比映射和循环快得多。
pandaic方式是调用str
访问方法 - encode
和decode
,这些方法完全相同,但更快。
df['newtext'] = df.comments.str.decode('latin-1').str.encode('ascii','ignore')
答案 2 :(得分:0)
试试这个。它将地图对象转换为列表。
df['newtext'] = list(map(lambda x: x.decode('latin-1').encode('ascii','ignore'),df['comment']))
答案 3 :(得分:0)
只需将地图对象转换为列表,如下所示
df['newtext'] = list(map(lambda x: x.decode('latin-1').encode('ascii','ignore'),df['comment']))