合并两个熊猫数据帧,每个熊猫数据帧具有一个唯一的列,并保留行索引(Python)

问题描述 投票:0回答:1

我试图将两个数据帧合并为一个。每个数据框都有一个唯一的列名。行索引在两个数据帧之间可能重叠,但是也有唯一的。

这里是一个例子:

df1  = pd.DataFrame({'ColumnA': [1, 2, 3, 4]}, index=['a', 'b', 'c', 'd'])
df2  = pd.DataFrame({'ColumnB': [5, 6, 7, 8]}, index=['a', 'b', 'e', 'f'])  

因此,我期望以下结果:

 ColumnA   ColumnB
a 1        5
b 2        6
c 3        NaN
d 4        NaN
e NaN      7
f NaN      8

我尝试了以下操作:

df1 = df1.merge(df2, left_index=True, right_index=True)

我也尝试过:

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

两者都有结果,唯一的行都消失了。

有人可以在这里帮助我吗?谢谢。

python pandas dataframe merge concat
1个回答
1
投票

IIUC combine_firstjoin

df1.combine_first(df2)

   ColumnA  ColumnB
a      1.0      5.0
b      2.0      6.0
c      3.0      NaN
d      4.0      NaN
e      NaN      7.0
f      NaN      8.0

df1.join(df2,how='outer')

   ColumnA  ColumnB
a      1.0      5.0
b      2.0      6.0
c      3.0      NaN
d      4.0      NaN
e      NaN      7.0
f      NaN      8.0

0
投票

运行:

df1.join(df2, how='outer')
© www.soinside.com 2019 - 2024. All rights reserved.