Python 3.x 数据帧列表

Python 3.x 数据帧列表,python-3.x,pandas,Python 3.x,Pandas,我有2个DF,它们有一些共同的元素,并且在1个数据上有所区别。使用append函数将这些DF添加到列表中。 如何将列表重新组织成一个新的DF,并将数据放入列中 2个DF如下所示,并添加了append import pandas as pd a=[] r1={'date' : ['2003-01-31','2003-01-31'],'name' :['mod','dom'],'fib' :[2,3]} df1=pd.DataFrame(r1,columns=['date','name','fib

我有2个DF,它们有一些共同的元素,并且在1个数据上有所区别。使用append函数将这些DF添加到列表中。 如何将列表重新组织成一个新的DF,并将数据放入列中

2个DF如下所示,并添加了append

import pandas as pd
a=[]

r1={'date' : ['2003-01-31','2003-01-31'],'name' :['mod','dom'],'fib' :[2,3]}
df1=pd.DataFrame(r1,columns=['date','name','fib'])


r2={'date' : ['2003-01-31','2003-01-31'],'name' :['dom','mod'],'bif' :[5,7]}
df2=pd.DataFrame(r2,columns=['date','name','bif'])

a.append(df1)
a.append(df2)
a
然后我将列表a映射到一个新的DF中

z=pd.concat(map(pd.DataFrame,a))
z
如何重新组织只需要两行的z

我期望的结果是

r3={'date':['2003-01-31','2003-01-31'],'name' :['mod','dom'],'fib':[2,3],'bif':[7,5]}
pd.DataFrame(r3) 
尝试使用pd.merge

df1.merge(df2, on=['name', 'date'])
结果:

    date    name    fib bif
0   2003-01-31  mod 2   7
1   2003-01-31  dom 3   5
尝试使用pd.merge

df1.merge(df2, on=['name', 'date'])
结果:

    date    name    fib bif
0   2003-01-31  mod 2   7
1   2003-01-31  dom 3   5

对于
z
,我会:

z=pd.concat([i.set_index(['date','name']) for i in a],axis=1).reset_index()
print(z)


对于
z
,我会:

z=pd.concat([i.set_index(['date','name']) for i in a],axis=1).reset_index()
print(z)


你能展示一下你期望的输出吗?我添加了期望的输出。谢谢你的帮助。你能展示一下你期望的输出吗?我添加了期望的输出。感谢您的帮助如果这是名为“z”的DF而不是合并DF1和DF2,您会怎么做?我被这个问题弄糊涂了,这个结果是通过合并上面示例中的DF1和DF2实现的。如果您想将结果命名为z,您可以执行z=df1.merge(df2,on=['name','date']),如果这是名为“z”的DF,而不是合并df1和df2,您会怎么做?我被这个问题弄糊涂了,这个结果是通过合并上面示例中的df1和df2实现的。如果要将结果命名为z,可以执行z=df1.merge(df2,on=['name','date'])