【问题标题】:Applying a function on a pandas dataframe column using map使用 map 在 pandas 数据框列上应用函数
【发布时间】:2017-09-18 04:20:47
【问题描述】:

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

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

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

映射对象位于 0x000001C1B9CE07F0

我正在使用 python 3。请帮助。谢谢

【问题讨论】:

    标签: python pandas lambda


    【解决方案1】:

    Python 的map 函数返回映射对象,需要将其转换为列表。 Example

    所以,您可以将您的 map() 呼叫转换为 list()

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

    【讨论】:

      【解决方案2】:

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

      pandaic 方法是调用 str 访问器方法 - encodedecode,它们的作用完全相同,但速度更快。

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

      【讨论】:

      • AttributeError: Can only use .str accessor with string values, which use np.object_ dtype in pandas
      • @Analyticsbeginner 呃...df.comments.astype(str).str.decode('latin-1').str.encode('ascii','ignore')
      • error : Can only use .str accessor with string values, which use np.object_ dtype in pandas
      • @Analyticsbeginner 抱歉,如果不查看您的数据是什么样子,就帮不了您。但无论如何,不要使用其他方法。它们
      【解决方案3】:

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

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

      【讨论】:

        【解决方案4】:

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

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

        【讨论】:

        • 我得到这个错误错误'str'对象没有属性'decode'
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-07-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-03-13
        • 1970-01-01
        • 2020-04-02
        相关资源
        最近更新 更多