从多个字典创建数据框架

3
我有多个字典,包含一系列文本文件中单词出现的频率计数。我尝试找到一种方法将它们汇总到一个数据框中(因此一个字典=一个文本文件=数据框中的一行),但我对Python不太熟悉,不确定该如何继续。
我大约有50个文本文件/字典,但为简单起见,假设我有以下内容;
mydict = {'red': 2,'blue': 1,'yellow': 3}
mydict2 = {'blue': 1,'orange': 3,'red': 1}
mydict3 = {'purple': 1,'green': 3,'brown': 2}

我该如何创建一个数据框,列为所有颜色的完整列表,行为字典/文本文件,然后相应计数为数据点(任何未出现在特定列中的颜色都被注册为零)。

我没有编写过相关代码,因此不知道如何开始这个任务。

2个回答

4
你可以为每个系列创建一个,并使用.concat将它们连接起来。
mydicts = [mydict, mydict2, mydict3]
df = pd.concat([pd.Series(d) for d in mydicts], axis=1).fillna(0).T
df.index = ['mydict', 'mydict1', 'mydict2']
df

返回值
         blue  brown  green  orange  purple  red  yellow
mydict    1.0    0.0    0.0     0.0     0.0  2.0     3.0
mydict1   1.0    0.0    0.0     3.0     0.0  1.0     0.0
mydict2   0.0    2.0    3.0     0.0     1.0  0.0     0.0

字典/文本文件作为行 - BENY

3

使用pd.DataFrame.from_records()

In [6]: mydicts = [mydict, mydict2, mydict3]

In [7]: pd.DataFrame.from_records(mydicts).fillna(0)
Out[7]:
   blue  brown  green  orange  purple  red  yellow
0   1.0    0.0    0.0     0.0     0.0  2.0     3.0
1   1.0    0.0    0.0     3.0     0.0  1.0     0.0
2   0.0    2.0    3.0     0.0     1.0  0.0     0.0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接