如何合并两个数据框的行与不相等的列?

时间:2019-02-11 14:41:20

标签: python pandas

我有两个数据帧df1df2

df1的列名称为: col1col2col3col4col5col6col7

df2的列名称为: col1col2col3

df1的形状为40000行7列

df2的

形状为7000行3列。

我想合并df1df2,并创建whoes形状为df3的{​​{1}}。

由于47000 rows and 7 columns的列仅为3,因此当我们合并它们时,其他列应为空

2 个答案:

答案 0 :(得分:0)

以下应该可以解决问题:

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

https ://pandas.pydata.org/pandas-docs/stable/user_guide/merging.html#ignoring-indexes-on-the-concatenation-axis

答案 1 :(得分:0)

我认为您在搜索此问题时使用merge一词可能会使您感到困惑。大熊猫中的merge就像SQL中的join一样。

您真正想做的是将一个数据帧append移到另一个数据帧。像这样:

df1 = pd.DataFrame(np.random.randn(10, 4), columns=list('ABCD'))
df2 = pd.DataFrame(np.random.randn(10, 2), columns=list('CD'))
df3 = df1.append(df2)
print(df3)
    A   B   C   D
0   0.756090    0.870448    1.620658    0.292611
1   -0.123287   -1.310157   -1.543878   1.248768
2   -1.008736   0.718931    0.292012    -2.258360
3   1.209176    -0.577204   -0.529350   0.495382
0   NaN NaN 0.180752    -2.143169
1   NaN NaN 1.515064    2.005604
2   NaN NaN -0.507997   0.129836
3   NaN NaN 0.145295    -0.047879