如何添加两个具有不同列名的数据框,并避免使用nan值的列


xyarr= [[0,1,2],[1,1,3],[2,1,2]]
df1 = pd.DataFrame(xyarr, columns=['a', 'b','c'])
df2 = pd.DataFrame([['text','text2']], columns=['x','y'])
df3 = pd.concat([df1,df2],axis=0, ignore_index=True)

df3将具有NaN值,从空列a b c。

a    b    c     x      y
0  0.0  1.0  2.0   NaN    NaN
1  1.0  1.0  3.0   NaN    NaN
2  2.0  1.0  2.0   NaN    NaN
3  NaN  NaN  NaN  text  text2

我想保存df3为csv,但没有额外的逗号有什么建议吗?

由于pd.concat是默认的外连接,您将从空列a b c中获得NaN值。如果您使用其他Pandas函数,例如.join(),默认为左连接,您可以在这里解决问题。

您可以尝试使用.join(),如下所示:

df3 = df1.join(df2)

结果:

print(df3)
a  b  c     x      y
0  0  1  2  text  text2
1  1  1  3   NaN    NaN
2  2  1  2   NaN    NaN

最新更新