我想通过索引合并/合并/两个数据框。
df1 = pd.DataFrame(index=range(5),columns=range(5))
df1 = df1.fillna(0)
df1
0 1 2 3 4
0 0 0 0 0 0
1 0 0 0 0 0
2 0 0 0 0 0
3 0 0 0 0 0
4 0 0 0 0 0
d = {'2': [1,0,2,0,3], '4': [0,3,0,4,0]}
df2 = pd.DataFrame(data=d)
df2 = df2.iloc[[2,3],:]
df2
2 4
2 2 0
3 0 4
这是我尝试过的,它显示以下内容。
pd.concat([df1, df2], axis=1, join_axes=[df1.index])
0 1 2 3 4 2 4
0 0 0 0 0 0 NaN NaN
1 0 0 0 0 0 NaN NaN
2 0 0 0 0 0 2.0 0.0
3 0 0 0 0 0 0.0 4.0
4 0 0 0 0 0 NaN NaN
我希望合并的数据帧是这个。
0 1 2 3 4
0 0 0 0 0 0
1 0 0 0 0 0
2 0 0 2.0 0 0
3 0 0 0 0 4.0
4 0 0 0 0 0
答案 0 :(得分:3)
使用update
注意所有方法,您需要使索引和列dtype相同,这就是为什么我首先将它们转换为int的原因,因为当您创建df2时,列为str
df2.columns=df2.columns.astype(int)
df1.update(df2)
df1
Out[961]:
0 1 2 3 4
0 0 0 0.0 0 0.0
1 0 0 0.0 0 0.0
2 0 0 2.0 0 0.0
3 0 0 0.0 0 4.0
4 0 0 0.0 0 0.0
或reindex_like
df2=df2.reindex_like(df1).fillna(0)
df2
Out[964]:
0 1 2 3 4
0 0.0 0.0 0.0 0.0 0.0
1 0.0 0.0 0.0 0.0 0.0
2 0.0 0.0 2.0 0.0 0.0
3 0.0 0.0 0.0 0.0 4.0
4 0.0 0.0 0.0 0.0 0.0