我有一个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)
但是我没有看到我的数据中的类列,我得到了同一个单词的多个列。
答案 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