定义数据清除功能时设置“有复制”错误

时间:2018-10-12 07:23:04

标签: python pandas chained-assignment

我正在尝试为数据集提供预建模的干净数据功能,但它会引发警告“设置有复制错误”。我已经读到链式分配会出现这种错误,使用.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的建议解决方案,但仍然无济于事。

0 个答案:

没有答案