gpt4 book ai didi

python - DataFrame:如何根据行的另一个单元格切换单元格值?

转载 作者:太空狗 更新时间:2023-10-30 01:52:50 24 4
gpt4 key购买 nike

我有一份 friend 名单:

import pandas as pd
d = {'name': ['Alice', 'Bob', 'Charlie'], 'is_here': [True, True, False]}
df = pd.DataFrame(data=d)

问题:如何根据给定名称切换 is_here bool 值? (例如,如何让 toggle('Charlie') 在我的 DataFrame 中将 False 变成 True?)


我可以使用 df[df['name'] == 'Charlie'].iloc[0]['is_here'] 获取一个 bool 值的状态,但我很难更改值在 df 中。

最佳答案

xor切换Charlie

df.loc[df.name.eq('Charlie'), 'is_here'] ^= True

df

is_here name
0 True Alice
1 True Bob
2 True Charlie

解释

只有一个可以为真
xor

的真值表
       x      y  x ^ y
0 True True False
1 True False True
2 False True True
3 False False False

所以:
如果 x = Truex ^ True 的计算结果为 False
如果 x = Falsex ^ True 的计算结果为 True

loc 上使用 ^=,我们对用 True 表示的所有元素进行 xor切片并分配结果。

关于python - DataFrame:如何根据行的另一个单元格切换单元格值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49807820/

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