gpt4 book ai didi

python - Pandas:根据索引和列将一个数据框的值替换为另一个数据框的值

转载 作者:行者123 更新时间:2023-11-28 22:11:07 25 4
gpt4 key购买 nike

我想合并/加入/两个由索引替换的数据框。

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 注意所有方法,你需要使索引和列的数据类型相同,这就是为什么我首先将它们转换为 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

关于python - Pandas:根据索引和列将一个数据框的值替换为另一个数据框的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56133410/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com