如何防止pd.concat在具有相同名称的列之后插入`.1`?

时间:2018-10-28 18:26:55

标签: python python-3.x pandas

我正在尝试将2个数据集合并在一起,其中列名重叠。

例如这样的

df1:

col1   col2
aa     aa
bb     bb

df2:
col2   col3
cc     dd

new_df = pd.concat([df1,df2],axis=1)

new_df:

    col1   col2    col3
    aa     aa
    bb     bb
           cc     dd

当我在代码中运行上面的行时,我得到的是这样的:

  col1   col2   col2.1   col3
    aa     aa     nan
    bb     bb     nan
           cc     nan     dd

如何防止.1出现并强制pd.concat与列名匹配并插入数据?

1 个答案:

答案 0 :(得分:3)

您沿错误轴串联。在这里,您使用了轴,而您想在 index 轴上进行串联:

>>> pd.concat([df1, df2], axis='rows')
  col1 col2 col3
0   aa   aa  NaN
1   bb   bb  NaN
0  NaN   cc   dd

因此,通过指定axis=0axis='rows'axis='index'或完全省略它们,这些列将被“分组”,并且您将“垂直”连接起来。