从熊猫数据框创建单词袋

时间:2018-12-09 21:01:50

标签: pandas

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

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

它看起来像这样:

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

输出应以这种方式“重新创建”原始文档,以单词的形式:

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

该怎么做?

1 个答案:

答案 0 :(得分:2)

如果您想在最后使用数据框,则可以执行以下操作:

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构建