我想合并/连接/用索引替换两个数据框。
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
使用update注意所有方法,您需要使索引和列的 dtype 相同,这就是为什么我首先将它们转换为 int,因为当您创建 df2 时,列是 str
update
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
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