合并数据框动态
Posted
技术标签:
【中文标题】合并数据框动态【英文标题】:Merge dataframe dynamic 【发布时间】:2021-07-30 00:39:22 【问题描述】:我有 2 个数据框:df1 和 df2。我想合并 df2 中列链接上的 2 个数据框。 df2 中的链接列包含与 df1 匹配的列和值的列表:
df1 = pd.DataFrame('p':[1,2,3,4], 'a':[1,2,2,2],'b':['z','z','z','z'],'c':[3,3,4,4],'d':[5,5,5,6])
df2 = pd.DataFrame('e':[11,22,33,44], 'link':['a=1,c=3','a=2,c=3','a=2,c=4,d=5','a=2,c=4'])
结果应该以这样的数据框结尾,其中 df2 中的 e 列与 df1 合并在一起:
df_res = pd.DataFrame('p':[1,2,3,3,4], 'a':[1,2,2,2,2],'b':['z','z','z','z','z'],'c':[3,3,4,4,4],'d':[5,5,5,5,6],'e':[11,22,33,44,44])
如何在 pandas 中做到这一点?
【问题讨论】:
为什么输出数据帧有五行,输入数据帧有四行? 链接应该在什么基础上发生? 【参考方案1】:df1["e"] = df2["e"]
【讨论】:
在示例中,两者都有 4 行。尝试在这里查看 df1 中的一行在结果中以两行结束:i.imgur.com/jk2m7jU.png i.imgur.com/jk2m7jU.png">【参考方案2】:frames = [df1, df2]
result = pd.concat(frames)
【讨论】:
尝试查看我的屏幕转储。 df2 中的每一行都应根据 df2 中的列链接中的竞争进行动态链接。以上是关于合并数据框动态的主要内容,如果未能解决你的问题,请参考以下文章