gpt4 book ai didi

python - 仅根据条件 python 加入

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

我想加入,但只有在某些其他条件为 True

的情况下

我有一个 DataFrame df1 看起来像这样

ID    Bool   Val
1111 True AAA
2222 False BBB
3333 True CCC
4444 False DDD

然后我有另一个像这样的 DataFrame df2

ID    Val
1111 EEE
3333 FFF
5555 GGG

我想覆盖 df1 中的 Val 列,其中 ID 匹配并且 Bool。这看起来像这样

ID    Bool   Val
1111 True EEE
2222 False BBB
3333 True FFF
4444 False DDD

如您所见,AAACCC 已被覆盖。

我正在考虑用 if 语句来做这件事

最佳答案

您可以使用 boolean indexing使用 loc 选择 df1 中 'bool' 列为 True 的行,也可以使用 pandas.Series.map正确分配:

b=df1['Bool']
df1.loc[b,'Val']=df1.loc[b,'ID'].map(df2.set_index('ID')['Val'])
print(df1)

ID Bool Val
0 1111 True EEE
1 2222 False BBB
2 3333 True FFF
3 4444 False DDD

您也可以使用 pandas.Series.replace :

df1.loc[b,'Val']=df1.loc[b,'ID'].replace(df2.set_index('ID')['Val'])

关于python - 仅根据条件 python 加入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57971393/

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