【问题标题】:Trying to create a bag of words of Panda's df试图创建一个熊猫的df词包
【发布时间】:2018-07-11 16:15:49
【问题描述】:

我是 pandas 的新手(对 Python 也有些陌生),我正在尝试为特定列的每一行创建一个单词包。 This 是我从中获取代码的地方,接下来是我的尝试:

for index, row in df.iterrows():
    cell = df.Review2.iloc[index]
    df['BOW'].iloc[index] = pd.Series([y for x in cell for y in x.split()]).value_counts()

这是我的数据框中的单个单元格,我想在其上执行上述操作(因此没有用于迭代所有行的 for 循环):

问题价格说折扣6瓶甚至显示减少检查更改五 明星味道好这个得到最好的橱柜很棒脆得到最好的橱柜 曾经大脆原买三瓶风买整箱 假期不错 加利福尼亚 出租车 出租车 很棒 惊喜 很棒 浓郁的风味1美分船促销体面

非常感谢任何帮助!

【问题讨论】:

    标签: python pandas bag


    【解决方案1】:
    import pandas as pd
    from collections import Counter
    df = pd.DataFrame({'review': ['Hello World Hello', 'Hi Bye Bye Bye']})
    df['BOW'] = df.review.apply(lambda x: Counter(x.split(" ")))
    
    
                  review                         BOW
    0  Hello World Hello  {u'World': 1, u'Hello': 2}
    1     Hi Bye Bye Bye       {u'Bye': 3, u'Hi': 1}
    

    我使用 pandas apply 方法处理所有行而不显式迭代它们。

    【讨论】:

    • 你也可以去掉lambda:df.review.str.split().apply(Counter)
    猜你喜欢
    • 2017-06-26
    • 1970-01-01
    • 2021-12-17
    • 2021-07-27
    • 1970-01-01
    • 2018-03-03
    • 2019-08-07
    • 2019-09-23
    • 2018-12-01
    相关资源
    最近更新 更多