You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Pandas中DataFrame某列为False时如何更快给另一列赋值True

问题解答

你的原有实现逻辑完全正确,运行效率也属于pandas矢量化操作的最优区间,如果你需要更简洁的写法,可以直接对布尔列做取反操作:

df['flag2'] = ~df['flag']

相关说明

  • 这里的~是pandas中针对布尔Series的逻辑取反运算符,语义上直接对应「将flag列的布尔值反转」,比== False的写法更简洁,可读性也更强
  • 两种写法在flag列为纯布尔值(无NaN空值)的场景下,运行结果和性能几乎没有差异
  • 不推荐使用apply+lambda的写法实现该需求,该写法属于逐行遍历操作,运行效率远低于上面两种矢量化实现

完整示例代码

import pandas as pd

n1 = range(10)

df = pd.DataFrame(n1, columns=['data'])
df['flag'] = df.data > 5
df['flag2'] = ~df['flag']

内容的提问来源于stack exchange,提问作者jaried

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 20:18:03