将数据框与公共列连接起来[重复]

Posted

技术标签:

【中文标题】将数据框与公共列连接起来[重复]【英文标题】:Concatenating dataframes with a common column [duplicate] 【发布时间】:2021-08-10 08:33:40 【问题描述】:

我有 2 个数据框,其中一个公共列表示行号。

Df1: 
                     
Rownum  A     B     C

11      S     V     L
11      F     U     M  
11      T     C     O  
11      B     X     P

Df2:
                      
Rownum  E     F     G
12      S     V     L
12      F     U     M  
12      T     C     O  
12      B     X     P

当前实现:

df = pd.concat(df1,df2,axis=1)

Output:

Rownum  A     B     C   Rownum  E     F     G

11      S     V     L   12      S     V     L
11      F     U     M   12      F     U     M 
11      T     C     O   12      T     C     O 
11      B     X     P   12      B     X     P

下面提到的是我想要实现的期望输出

Rownum  A     B     C    E     F     G

11      S     V     L
11      F     U     M  
11      T     C     O  
11      B     X     P
12                       S     V     L
12                       F     U     M  
12                       T     C     O  
12                       B     X     P

我们将不胜感激。

【问题讨论】:

pd.merge(df, df1, on='Rownum', how='outer').fillna('') 【参考方案1】:

删除concat 中的axis=1 并将Rownum 转换为DataFrames 的索引:

df = pd.concat([df1.set_index('Rownum'),df2.set_index('Rownum')]).reset_index().fillna('')
print (df)
   Rownum  A  B  C  E  F  G
0      11  S  V  L         
1      11  F  U  M         
2      11  T  C  O         
3      11  B  X  P         
4      12           S  V  L
5      12           F  U  M
6      12           T  C  O
7      12           B  X  P

【讨论】:

以上是关于将数据框与公共列连接起来[重复]的主要内容,如果未能解决你的问题,请参考以下文章

将两个数据框与一些公共列合并,其中公共的组合需要是自定义函数

将两个不相等的数据框与两个索引(日期时间和日期)上的部分公共元素合并

PySpark:如何将数据框与存储在其他变量中的列名连接起来

Oracle:将两个表与一个公共列加上第二个表中的一个附加列(最新生效日期)连接以选择其他列

基于公共列合并多个数据框[重复]

如何将两列数据框与 Nan 值结合起来? [复制]