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

标签 python python-3.x pandas dataframe

我有一份 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/

相关文章:

python - Pandas,使用 dt.date 或 dt.strftime 从日期时间列中删除时间戳,将列转换为 dtype : object

python - 如何在聚合函数中选择多列?

python - 如何计算defaultdict(python)中元组中唯一关键元素的数量?

python - python列表中的内存泄漏问题

python - 删除对象边缘的关键点

python - 基于索引的输出行

python - 实时拦截子进程输出的问题

python - 来自元组的任意嵌套字典

python - 动态生成css内容不生效

python - 如何将数据从 pandas 数据帧分块加载到 spark 数据帧