2017-10-19 48 views
1

我有一個看起來像這樣的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

似乎Python字典不是一個列表 –

回答

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