2017-10-19 8 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 
関連する問題