结合两个字典的大熊猫数据帧

时间:2018-01-05 17:59:28

标签: python pandas dictionary

我想采用两个独立的数据帧,每个数据帧由一堆字典组成,并将它们组合起来产生以下内容:

df1 = pd.DataFrame([[{'a':1}, {'a':2}]])
df2 = pd.DataFrame([[{'b':1}, {'b':2}]])
df3 = pd.some_function(df1, df2)

其中pd.some_function获取两个dfs并执行单元格的单元格合并:

                    0                   1
0  {u'a': 1, u'b': 1}  {u'a': 2, u'b': 2}

我知道我可以使用for循环执行此操作,但是有没有可以更简洁地执行此操作的pandas函数?简单地添加dfs不起作用。我熟悉df.applymap,但我的理解是将函数应用于单个df的每个单元格。

1 个答案:

答案 0 :(得分:1)

使用concat + ChainMap

from collections import ChainMap


df=pd.concat([df1,df2])
df.groupby(df.index)[0,1].agg(lambda x :dict(ChainMap(*x.values.tolist())))
Out[94]: 
                  0                 1
0  {'b': 1, 'a': 1}  {'b': 2, 'a': 2}