使用不同的轴输出dfs,在其中一个df值上输出Nan值

时间:2018-01-02 10:06:04

标签: pandas

我有df1

     X  Y
ABS  5  6

然后我有一个不同的df2

     J 
XYJ  7 

我只想水平连接两个dfs以获取以下dfs维护df1索引:

     X  Y  J
ABS  5  6  7

然而,当我这样做时:

rdo=pd.concat([df1,df2],axis=1,join_axes=[df1.index])
print(rdo)    

输出:

     X  Y  J
ABS  5  6  NaN

是否有其他方法可以做到这一点?

1 个答案:

答案 0 :(得分:1)

两个DataFrame中需要相同的索引值,最简单的是指定相同的索引,但两个DataFrame的长度必须相同:

df2.index = df1.index
print (df2)
     J
ABS  7

rdo=pd.concat([df1,df2],axis=1)
print (rdo)
     X  Y  J
ABS  5  6  7

另一种方法是按reset_index加默认索引,然后加set_indexrename_axis用于删除索引名称:

rdo= (pd.concat([df1.reset_index(),
               df2.reset_index(drop=True)],axis=1)
        .set_index('index')
        .rename_axis(None))
print (rdo)
     X  Y  J
ABS  5  6  7

详情:

print (df1.reset_index())
  index  X  Y
0   ABS  5  6

print (df2.reset_index(drop=True))
   J
0  7