gpt4 book ai didi

python - 如何根据条件合并两个pandas数据框

转载 作者:行者123 更新时间:2023-12-03 08:00:19 24 4
gpt4 key购买 nike

我有两个数据框,如下所示:

df1
A B
0 0 3
1 0 2
2 1 5
3 1 3
4 2 5
5 'Ciao' 'log'
6 3 4


df2
A B
0 0 -1
1 0 20
2 1 -2
3 1 33
4 2 17

我想合并两个数据帧,以便 if A==0保留 df1 的值否则保留 df2 的值.

最后,我想要如下内容

df2
A B
0 0 3
1 0 2
2 1 -2
3 1 33
4 2 17

最佳答案

假设数据帧已对齐(并且 df1 中的重复索引 3 是一个拼写错误),您不需要合并,而是使用 where 的条件:

out = df1.where(df1['A'].eq(0), df2)

输出:

   A   B
0 0 3
1 0 2
2 1 -2
3 1 33
4 2 17

注意。如果你真的想要合并,你必须进一步解释合并的逻辑并提供一个重要的例子。

更新的示例:

您似乎仍然有部分对齐的索引,但想要获得交集:

out = (df1.where(df1['A'].eq(0), df2)
.loc[df1.index.intersection(df2.index)]
)

或者:

out = (df1.reindex_like(df2)
.where(df1['A'].eq(0), df2)
)

输出:

     A     B
0 0.0 -1.0
1 0.0 20.0
2 1.0 -2.0
3 1.0 33.0
4 2.0 17.0

关于python - 如何根据条件合并两个pandas数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74530992/

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