【问题标题】:Creating bag of words from a pandas dataframe从熊猫数据框中创建词袋
【发布时间】:2018-12-10 05:19:52
【问题描述】:

有一个类似的question,但我正在寻找的输出不同。

我有一个数据框,其中列出了所有单词(列)以及它们出现在每个文档(行)中的数量。

看起来像这样:

{'orange': {0: '1',
1: '3'},
'blue': {0: '0',
1: '2'}}

输出应该以这种方式将原始文档“重新创建”为一个词袋:

corpus = [
['orange'],
['orange', 'orange', 'orange', 'blue', 'blue']]

如何做到这一点?

【问题讨论】:

    标签: pandas


    【解决方案1】:

    如果你想要一个数据框,你可以这样做:

    import pandas as pd
    from collections import defaultdict
    data = {'orange': {0: '1',
                       1: '3'},
            'blue': {0: '0',
                     1: '2'}}
    
    
    results = defaultdict(list)
    for color, placement in data.items():
        for row, count in placement.items():
            values = results[row]
            values.extend(int(count) * [color])
    df = pd.DataFrame.from_dict(results, orient='index')
    

    如果你想要一个列表,就这样做:

    [v for row, v in results.items()]
    

    而不是 df 构建

    【讨论】:

      猜你喜欢
      • 2018-03-03
      • 1970-01-01
      • 2014-11-22
      • 1970-01-01
      • 2022-09-24
      • 2018-11-04
      • 2021-06-02
      • 2017-08-27
      • 1970-01-01
      相关资源
      最近更新 更多