合并2个不同的数据框-Python 3.6

时间:2018-09-18 11:23:51

标签: python-3.x pandas dataframe merge

要合并2个表,而空白应填充第一个表行。

DF1:

Col1 Col2 Col3
A    B    C

DF2:

Col6  Col8
1      2
3      4
5      6
7      8
9      10

我期望结果如下:

Col1 Col2 Col3 Col6  Col8
A    B    C    1     2
A    B    C    3     4
A    B    C    5     6
A    B    C    7     8
A    B    C    9     10

2 个答案:

答案 0 :(得分:1)

使用assign,但随后必须更改列的顺序:

df = df2.assign(**df1.iloc[0])[df1.columns.append(df2.columns)]
print (df)
  Col1 Col2 Col3  Col6  Col8
0    A    B    C     1     2
1    A    B    C     3     4
2    A    B    C     5     6
3    A    B    C     7     8
4    A    B    C     9    10

或者concat,并用NaN向前填充来替换ffill

df = pd.concat([df1, df2], axis=1).ffill()
print (df)
  Col1 Col2 Col3  Col6  Col8
0    A    B    C     1     2
1    A    B    C     3     4
2    A    B    C     5     6
3    A    B    C     7     8
4    A    B    C     9    10

答案 1 :(得分:1)

您可以通过索引将两个数据框与外部联接合并并向前填充数据

df1.merge(df,left_index=True,right_index=True,how='outer').fillna(method='ffill')

出局:

    Col6 Col8 Col1 Col2 Col3
0   1   2   A   B   C
1   3   4   A   B   C
2   5   6   A   B   C
3   7   8   A   B   C
4   9   10  A   B   C