我正在尝试为数据集提供预建模的干净数据功能,但它会引发警告“设置有复制错误”。我已经读到链式分配会出现这种错误,使用.loc可以解决此问题,但是我正为此而苦苦挣扎。
在下面的代码片段中。错误在for循环中引发。请帮助我解决此问题
def clean_data(df):
df.drop_duplicates()
df['base'] = df.base.fillna(0)
....
....
df = df[df.size <= 50000]
for column in df.dtypes[df.dtypes == object].index:
df[column] = df[column].fillna('Missing') # warning from this line
return df
raw_df = pd.read_csv('estate_data.csv')
cleaned_data = clean_data(raw_data)
要知道哪一行正在生成警告,我已经设置
pd.set_option('mode.chained_assignment','raise')
在for循环主体中生成错误。
我知道当不确定是否要修改数据框的视图或副本时,大熊猫会引发这种错误。
如何解决这个问题?
这与建议的重复问题有所不同,因为我想更改原始数据框而不是进行copy()。此外,我已经尝试了使用.loc的建议解决方案,但仍然无济于事。