我有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
是否有其他方法可以做到这一点?
答案 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_index
,rename_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