如何将单词计数列表转换为数据框以进行情绪分析

时间:2017-10-19 04:47:23

标签: python python-3.x pandas

我有一个python列表对象,如下所示:

{'word1':#, 'word2':#, 'word3':#, 'class':'pos'}

{'word2':#, 'word4':#, 'word5':#, 'word6':#, 'class':'neg'}

其中每一行都有一个单词列表,它们的单词数来自文件中的行,最后一个列表项总是pos(正)或neg(负)。 (这是用于情绪分析)。

我试图将其转换为数据框,其中每列都是列表中每行的有效字。每行都有该项的字数:

DF:

row   word1   word2   word3   word4   word5   word6   class
1     #       #       #       0       0       0       pos
2     0       #       0       #       #       #       neg

我该怎么做?我尝试使用

直接将其转换为数据框
df = pd.DataFrame(list)

但是我没有看到我的数据中的类列,我得到了同一个单词的多个列。

1 个答案:

答案 0 :(得分:1)

它们是字典,而不是列表对象。

您需要制作一个包含词典的列表:

import pandas as pd

list = [{'word1':10, 'word2':34, 'word3':75, 'class':'pos'},
        {'word2':35, 'word4':53, 'word5':3, 'word6':59, 'class':'neg'}]

df = pd.DataFrame(data=list, index=range(1, len(list)+1))
print(df)

print() # Empty line

df = df.replace(pd.np.nan, "0") # Replace NaN values with 0s
print(df)

输出:

  class  word1  word2  word3  word4  word5  word6
1   pos   10.0     34   75.0    NaN    NaN    NaN
2   neg    NaN     35    NaN   53.0    3.0   59.0

  class word1  word2 word3 word4 word5 word6
1   pos    10     34    75     0     0     0
2   neg     0     35     0    53     3    59