python – 将新数据帧添加到现有数据库,但仅在列名匹配时才添加
发布时间:2020-12-20 12:35:04 所属栏目:Python 来源:网络整理
导读:我有两个数据帧,我试图结合,但我没有得到我想要使用pandas.concat的结果. 我有一个数据库,我想要添加新数据,但仅限于名称列匹配. 我们说df1是: A B C D1 1 2 23 3 4 45 5 6 6 和df2是: A E D F7 7 8 89 9 0 0 我想得到的结果是: A B C D1 1 2 23 3 4 45 5
我有两个数据帧,我试图结合,但我没有得到我想要使用pandas.concat的结果.
我有一个数据库,我想要添加新数据,但仅限于名称列匹配. 我们说df1是: A B C D 1 1 2 2 3 3 4 4 5 5 6 6 和df2是: A E D F 7 7 8 8 9 9 0 0 我想得到的结果是: A B C D 1 1 2 2 3 3 4 4 5 5 6 6 7 - - 8 9 - - 0 空白数据不一定是 – 它可以是任何东西. 我用的时候: results = pandas.concat([df1,df2],axis = 0,join =’outer’) 它为我提供了一个包含所有A到F列的新数据框,而不是我想要的.关于如何实现这一目标的任何想法?谢谢! 解决方法
您希望使用
pd.DataFrame.align 方法并指定您想要与左参数的索引对齐,并且您只关心列.
d1,d2 = df1.align(df2,join='left',axis=1) 然后您可以使用pd.DataFrame.append或pd.concat pd.concat([d1,d2],ignore_index=True) A B C D 0 1 1.0 2.0 2 1 3 3.0 4.0 4 2 5 5.0 6.0 6 3 7 NaN NaN 8 4 9 NaN NaN 0 要么 d1.append(d2,ignore_index=True) A B C D 0 1 1.0 2.0 2 1 3 3.0 4.0 4 2 5 5.0 6.0 6 3 7 NaN NaN 8 4 9 NaN NaN 0 我首选的方法是跳过重新分配名称 pd.concat(df1.align(df2,'left',1),ignore_index=True) A B C D 0 1 1.0 2.0 2 1 3 3.0 4.0 4 2 5 5.0 6.0 6 3 7 NaN NaN 8 4 9 NaN NaN 0 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |