这种就地方法永远不会起作用,因为我们设置值的中间对象始终表现为副本

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

当我在 pandas 中应用“inplace”参数来运行时,我收到错误:

代码:

data = pd.read_csv("house_train.csv",usecols=["BsmtQual","FireplaceQu","GarageType"])
frequent = data['BsmtQual'].mode()[0]
data['BsmtQual'].fillna(frequent,inplace=True)

我收到警告:

FutureWarning:尝试使用就地方法通过链式赋值在 DataFrame 或 Series 的副本上设置值。 pandas 3.0 中的行为将会改变。这种就地方法永远不会起作用,因为我们设置值的中间对象始终表现为副本。

例如,在执行

df[col].method(value, inplace=True)
时,尝试使用
df.method({col: value}, inplace=True)
df[col] = df[col].method(value)
来代替,在原始对象上执行操作。

data['BsmtQual'].fillna(frequent,inplace=True)
python pandas data-science feature-engineering
1个回答
0
投票

因为

data['BsmtQual']
链接到
data
。 要遵循警告说明,请尝试:

data.fillna({"BsmtQual": frequent}, inplace=True)
© www.soinside.com 2019 - 2024. All rights reserved.