首页
学习
活动
专区
圈层
工具
发布

数据表
EN

Stack Overflow用户
提问于 2019-05-08 13:33:12
回答 2查看 57关注 0票数 1

我有两个DF,它们有一些共同的元素,并且在一个数据上有区别。这些DF被添加到一个带有附加函数的列表中。如何将列表组织成一个新的DF,并将数据放入列中?

2 DF如下所示,并添加了附件。

代码语言:javascript
复制
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中。

代码语言:javascript
复制
z=pd.concat(map(pd.DataFrame,a))
z

如何重新组织只需要两行的z?

我期望的输出是

代码语言:javascript
复制
r3={'date':['2003-01-31','2003-01-31'],'name' :['mod','dom'],'fib':[2,3],'bif':[7,5]}
pd.DataFrame(r3) 
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-05-08 14:27:16

对于z,我会这样做:

代码语言:javascript
复制
z=pd.concat([i.set_index(['date','name']) for i in a],axis=1).reset_index()
print(z)
代码语言:javascript
复制
         date name  fib  bif
0  2003-01-31  dom    3    5
1  2003-01-31  mod    2    7
票数 0
EN

Stack Overflow用户

发布于 2019-05-08 13:56:30

尝试使用pd.merge

代码语言:javascript
复制
df1.merge(df2, on=['name', 'date'])

结果:

代码语言:javascript
复制
    date    name    fib bif
0   2003-01-31  mod 2   7
1   2003-01-31  dom 3   5
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56042052

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档