Python 将多个词典合并为一个DF
我有三本字典,我们称之为:W,E,T 这些字典看起来像:Python 将多个词典合并为一个DF,python,pandas,dataframe,dictionary,Python,Pandas,Dataframe,Dictionary,我有三本字典,我们称之为:W,E,T 这些字典看起来像: W = {'name': [1, 2, 3], 'prob': [0.2, 0.3, 0.5], 'div': [5, 3, 2], 'pos':[2, 1, 3]} E = {'name': [[1,2], [2,1], [1, 3], [2, 3]], 'prob': [0.3, 0.2, 0.1, 0.4], 'div': [3, 5, 10, 2.5], 'pos':[[2, 1], [1, 2], [2, 3], [1, 3]]
W = {'name': [1, 2, 3], 'prob': [0.2, 0.3, 0.5], 'div': [5, 3, 2], 'pos':[2, 1, 3]}
E = {'name': [[1,2], [2,1], [1, 3], [2, 3]], 'prob': [0.3, 0.2, 0.1, 0.4], 'div': [3, 5, 10, 2.5], 'pos':[[2, 1], [1, 2], [2, 3], [1, 3]]}
T = {'name': [[1,2,3], [2,1,3], [3,1,2]], 'prob': [0.3, 0.02, 0.68], 'div': [3, 50, 1.5], 'pos':[[2,1,3], [1,2,3], [3, 2, 1]]}
我不知道如何将这三个DF组合成一个DF,看起来像:
name prob div pos
1 0.2 5 2
2 0.3 3 1
3 0.5 2 3
[1,2] 0.3 3 [2, 1]
[2,1] 0.2 5 [1, 2]
[1,3] 0.1 10 [2, 3]
[2,3] 0.4 2.5 [1, 3]
[1,2,3] 0.3 3 [2, 1, 3]
[2,1,3] 0.02 50 [1, 2, 3]
[3,1,2] 0.68 1.5 [3, 2, 1]
我试着用
mydicts = [W,E,T]
pd.DataFrame(mydicts)
Out[1162]:
name prob div \
0 [1, 2, 3] [0.2, 0.3, 0.5] [5, 3, 2]
1 [[1, 2], [2, 1], [1, 3], [2, 3]] [0.3, 0.2, 0.1, 0.4] [3, 5, 10, 2.5]
2 [[1, 2, 3], [2, 1, 3], [3, 1, 2]] [0.3, 0.02, 0.68] [3, 50, 1.5]
pos
0 [2, 1, 3]
1 [[2, 1], [1, 2], [2, 3], [1, 3]]
2 [[2, 1, 3], [1, 2, 3], [3, 2, 1]]
但这似乎只是将字典值嵌套到列中,而不将它们分隔成行。尝试以下方法:
pd.concat([pd.DataFrame(W), pd.DataFrame(E), pd.DataFrame(T)])
使用
concat
和一个列表comppd.concat([W,E,T]]0中d的[pd.DataFrame.from_dict(d)]
使用pd.DataFrame。from_dict
要读取字典,它有一些参数可以让您指定读取对象的轴。