如何创建词典列表

时间:2016-12-16 01:04:41

标签: python pandas dictionary

我想计算按年度分组的文档中单词频率的数据,然后将数据放在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()不适用于字典类型。

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

正如上一张海报所提到的,append()是一个列表方法,但不是一个dict方法。但这应该有用:

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