2016-12-16 12 views
0

年単位でグループ化された文書の単語の頻度に関するデータを計算してから、そのデータをpandasデータフレームに配置したいと考えています。辞書のリストを作成する方法

私のルーチンは、単語と頻度をキーと値として含む各行の辞書を作成します。私はその後、辞書を追加して辞書にデータフレームに変換する辞書のリストを作成して、何年もループしたいと思っています。

辞書のリストからデータフレームを作成することは標準的です。私は手動でリストを作成することでそれを行うことができます。辞書の種類では動作しません()

wordtable = {'year':'1965','word1':20, 'word2': 250, 'word3': 125} 
newrow={'year':'1966','word1':150, 'word4': 250, 'word2': 125} 
wordtable.append(newrow) 

df = pandas.DataFrame(wordtable, index=[0]) 
df.to_csv('testdata.csv') 

しかし.appendは().appendというエラーメッセージにつながる:

私はこのような何かをできるようにしたいと思います。

+3

'wordtable = [{'year': '1965'、 'word1':20、 'word2':250、 'word3':125}]'を試してください。 'append()'は 'list'メソッドです。 –

+0

ありがとう!私の辞書をlist()でリストに変換すると、dataframeコマンドが機能しないように見えます。私は多くのパンダのドキュメンテーションで辞書のリストを議論しているという事実に困惑している。 – Jon

+1

あなたは辞書の複数のリストを必要とせず、*辞書のリスト*が必要です。 piRSquaredの答えを参照してください。 –

答えて

1

wordtableは辞書のリストである必要があります。次に、()追加、上述前ポスターとしてpd.DataFrame.from_records

wordtable = [{'year':'1965','word1':20, 'word2': 250, 'word3': 125}] 
newrow={'year':'1966','word1':150, 'word4': 250, 'word2': 125} 
wordtable.append(newrow) 

df = pd.DataFrame.from_records(wordtable) 
df 

enter image description here

+0

それだけです!どうもありがとう。 – Jon

+0

@Jonこれがあなたの質問に答えた場合、それを選択された回答としてマークすることを忘れないでください。どうも – piRSquared

1

を使用リスト方式ではなく、辞書法です。しかし、これはうまくいくはずです:

import pandas 

word_data = [] # list type 
word_counts_1 = {'year': '1965', 'word1':20, 'word2': 250, 'word3': 125} # dict type 
word_counts_2 = {'year':'1966','word1':150, 'word4': 250, 'word2': 125} # dict type 
word_data.append(word_counts_1) # append 1st word count data to list, word_data 
word_data.append(word_counts_2) # append 2nd word count data to list, word_data 
df = pandas.DataFrame(word_data) # create data frame from word_data 
df.to_csv('testdata.csv') # write it out 
関連する問題