Pandas:如何串联不同列的数据框?[英] Pandas: How to concatenate dataframes with different columns?

本文是小编为大家收集整理的关于Pandas:如何串联不同列的数据框?的处理方法,想解了Pandas:如何串联不同列的数据框?的问题怎么解决?Pandas:如何串联不同列的数据框?问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

我试图在官方 pandas document 中找到答案.但发现它比有帮助更令人困惑.基本上,我有两个具有重叠的数据框,但并非相同的列列表:

df1:
   A   B
0  22  34
1  78  42

df2:
   B   C
0  76  29
1  11  67

我想合并/连接/附加它们,以使结果为

df3:
   A   B   C
0  22  34  nan
1  78  42  nan
2  nan 76  29
3  nan 11  67

应该很简单,但是我尝试了几种直观的方法,并且总是会出现错误.有人可以帮我吗?

推荐答案

您需要与参数合并How = ofter

df3 = df1.merge(df2, how = 'outer')

    A       B   C
0   22.0    34  NaN
1   78.0    42  NaN
2   NaN     76  29.0
3   NaN     11  67.0

其他推荐答案

如果您只想加入可以使用的数据框.

pd.concat([df1,df2])

输出:

      A   B     C
0  22.0  34   NaN
1  78.0  42   NaN
0   NaN  76  11.0
1   NaN  11  67.0

然后您可以reset_index重新创建简单的增量索引.

pd.concat([df,df2]).reset_index(drop = True)

输出:

      A   B     C
0  22.0  34   NaN
1  78.0  42   NaN
2   NaN  76  11.0
3   NaN  11  67.0

其他推荐答案

@vaishali和 @scott-Boston解决方案工作.优先使用合并功能,因为它可以通过参数的方式更加灵活.如果涉及几列,Howerver Concat可以实现更好的性能

要优化 @Scott-Boston答案,您还可以使用内部concat参数igonore_index,该参数自动调整索引大小而不调用另一个函数,代码将如下:

pd.concat([df1,df2],ignore_index=True)

输出

      A   B     C
0  22.0  34   NaN
1  78.0  42   NaN
2   NaN  76  11.0
3   NaN  11  67.0

python(版本3.8.5)|熊猫(1.1.3版)

本文地址:https://www.itbaoku.cn/post/1727981.html