我想根据条件将一些单元格设置为空。例如:
import pandas as pd # version is 2.2.2
df = pd.DataFrame({'x' : [1, 2, 2, 1, 1, 2]})
df["b"]=False
df.loc[df["x"]==1,"b"]=pd.NA
它有效,但我得到了
FutureWarning:设置不兼容的数据类型的项目已被弃用,并且会在 pandas 的未来版本中引发错误。值“nan”的数据类型与 bool 不兼容,请首先显式转换为兼容的数据类型。
我尝试阅读文档并查看示例,但找不到解决方案。正确的做法是什么?
通过使用
b
定义 df['b'] = False
,您可以将系列/列的 dtype 设置为 bool
,并且由于 pd.NA
不是 bool
,这会引发警告。
您可以将列初始化为对象:
df['b'] = np.array(False, dtype='object')
df.loc[df['x']==1, 'b'] = pd.NA