如何在没有 FutureWarning 的情况下将 pandas.DataFrame 单元格设置为 null

问题描述 投票:0回答:1

我想根据条件将一些单元格设置为空。例如:

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 不兼容,请首先显式转换为兼容的数据类型。

我尝试阅读文档并查看示例,但找不到解决方案。正确的做法是什么?

python pandas dataframe boolean nullable
1个回答
0
投票

通过使用

b
定义
df['b'] = False
,您可以将系列/列的 dtype 设置为
bool
,并且由于
pd.NA
不是
bool
,这会引发警告。

您可以将列初始化为对象:

df['b'] = np.array(False, dtype='object')

df.loc[df['x']==1, 'b'] = pd.NA
© www.soinside.com 2019 - 2024. All rights reserved.