Python 3.x 数据帧列表
我有2个DF,它们有一些共同的元素,并且在1个数据上有所区别。使用append函数将这些DF添加到列表中。 如何将列表重新组织成一个新的DF,并将数据放入列中 2个DF如下所示,并添加了appendPython 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
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'])