来自 DataFrame 警告的切片副本,loc 方法不起作用
copy of a slice from a DataFrame warning, loc method not working
关于此主题的帖子很多,但不幸的是,提供的解决方案(使用 loc)对我不起作用。在我的数据集中,我有特征 'GarageYrBlt',这是车库建造的年份;另一个特征 'YearBuilt' 是房子建造的年份。 GarageYrBlt 有一些空值。
由于 GarageYrBlt 和 YearBuilt 密切相关,我试图用 YearBuilt 的相应值替换 GarageYrBlt 的空值。
df.GarageYrBlt[df.GarageYrBlt.isnull()] = df.YearBuilt[df.GarageYrBlt.isnull()]
这给出了警告 "A value is trying to be set on a copy of a slice from a DataFrame"
所以我尝试了如下所示的 .loc 方法,但没有任何变化。我仍然遇到同样的错误。有什么建议吗?
df.loc[:,"GarageYrBlt"][df.GarageYrBlt.isnull()] = df.loc[:,"YearBuilt"][df.GarageYrBlt.isnull()].copy()
您需要在单个切片操作中完成。所以不是这个:
df.loc[:,"GarageYrBlt"][df.GarageYrBlt.isnull()] = df.loc[:,"YearBuilt"][df.GarageYrBlt.isnull()].copy()
这样做:
df.loc[df.GarageYrBlt.isnull(), "GarageYrBlt"] = df.loc[df.GarageYrBlt.isnull(), "YearBuilt"]
或更简单:
df.GarageYrBlt.fillna(df.YearBuilt, inplace=True)
关于此主题的帖子很多,但不幸的是,提供的解决方案(使用 loc)对我不起作用。在我的数据集中,我有特征 'GarageYrBlt',这是车库建造的年份;另一个特征 'YearBuilt' 是房子建造的年份。 GarageYrBlt 有一些空值。
由于 GarageYrBlt 和 YearBuilt 密切相关,我试图用 YearBuilt 的相应值替换 GarageYrBlt 的空值。
df.GarageYrBlt[df.GarageYrBlt.isnull()] = df.YearBuilt[df.GarageYrBlt.isnull()]
这给出了警告 "A value is trying to be set on a copy of a slice from a DataFrame" 所以我尝试了如下所示的 .loc 方法,但没有任何变化。我仍然遇到同样的错误。有什么建议吗?
df.loc[:,"GarageYrBlt"][df.GarageYrBlt.isnull()] = df.loc[:,"YearBuilt"][df.GarageYrBlt.isnull()].copy()
您需要在单个切片操作中完成。所以不是这个:
df.loc[:,"GarageYrBlt"][df.GarageYrBlt.isnull()] = df.loc[:,"YearBuilt"][df.GarageYrBlt.isnull()].copy()
这样做:
df.loc[df.GarageYrBlt.isnull(), "GarageYrBlt"] = df.loc[df.GarageYrBlt.isnull(), "YearBuilt"]
或更简单:
df.GarageYrBlt.fillna(df.YearBuilt, inplace=True)