合并两个长度不同的Python pandas数据框,但保留输出数据框中的所有行。
合并两个长度不同的Python pandas数据框,但保留输出数据框中的所有行。
我有以下问题:我有两个长度不同的Pandas数据帧,其中包含一些具有相同值的行和列,以及一些不同的行和列,如下所示:
df1: df2: Column1 Column2 Column3 ColumnA ColumnB ColumnC 0 a x x 0 c y y 1 c x x 1 e z z 2 e x x 2 a s s 3 d x x 3 d f f 4 h x x 5 k x x
我现在想要的是将这两个数据帧合并,以便如果ColumnA和Column1具有相同的值,则将df2中的行附加到df1中的相应行中,如下所示:
df1: Column1 Column2 Column3 ColumnB ColumnC 0 a x x s s 1 c x x y y 2 e x x z z 3 d x x f f 4 h x x NaN NaN 5 k x x NaN NaN
我知道可以通过以下方式进行合并:
df1.merge(df2,left_on='Column1', right_on='ColumnA')
但是这个命令会删除在两个文件的Column1和ColumnA中不相同的所有行。相反,我希望在df1中保留这些行,并且仅在其他行的列中将NaN赋给它们,如上所示。是否有一种简便的方法在Pandas中实现这个?