如何将pandas DataFrame中所有值设置为False?
把DataFrame所有值设为False的可行方案
以下是几种简单直接的方法,能把close DataFrame里的所有值(包括NaN、浮点数等)全部设置为False:
直接赋值法(最简便)
直接对整个DataFrame赋值,不管原有数据类型或内容,全部替换为False:close[:] = False这个方法会直接覆盖所有元素,包括NaN,一步到位。
applymap遍历法
通过applymap遍历每个元素并设置为False,适合需要自定义逻辑的场景(这里逻辑就是固定返回False):close = close.applymap(lambda _: False)
为什么replace方法不好用?
replace主要用于替换特定值或匹配规则的内容,如果要覆盖所有值(包括NaN),需要写复杂的规则(比如同时匹配NaN和所有数值/字符串),反而不如上面的方法直接高效。比如尝试用replace的话,需要写:
import numpy as np close.replace({np.nan: False}, regex=True, inplace=True) close.replace(r'.*', False, regex=True, inplace=True)
但这种写法不仅繁琐,还可能因为数据类型匹配问题出现遗漏,完全没必要。
内容的提问来源于stack exchange,提问作者Brian
相关产品推荐
相关产品推荐

