Python, Проблема с Предупреждением об индексировании фреймов данных

#python

Вопрос:

это мой код. (df = Объект фрейма данных)

 [185] df = input_df.copy() [186] df['date_time'] = df['date_time'].dt.date [187] df['trade_status'][df['trade_status'] == 'DONE'] = 'FILLED'  

это мое окно запуска.

 C:PracticeReportsrcserviceReportService.py:187: SettingWithCopyWarning:  A value is trying to be set on a copy of a slice from a DataFrame  

Как я должен изменить код 187 line ? Поскольку df является копией из DataFram, нужно ли мне вносить изменения any other code ? Помогите мне, пожалуйста.

Ответ №1:

Вы можете использовать numpy.где:

 df['trade_status'] = np.where(df['trade_status']=='DONE', 'FILLED', df['trade_status'])  

Редактировать:

Или вы можете использовать панд.где:

 df['trade_status'] = df['trade_status'].where(df['trade_status']!='DONE', 'FILLED')