Невозможно удалить строки в пандах DataFrame, которые содержат нули - PullRequest
0 голосов
/ 21 мая 2018

Редактирование большого фрейма данных в python.Как удалить целые строки в кадре данных, если строка конкретного столбца имеет значение 0.0?

Когда я отбрасываю 0,0 с в столбце общего удовлетворения, изменения не отображаются в моей матрице рассеяния большого кадра данных.

Я пытался:

filtered_df = filtered_df.drop([('overall_satisfaction'==0)], axis=0)

также пытался заменить 0.0 на нули и сбросить нули:

filtered_df = filtered_df.['overall_satisfaction'].replace(0.0, np.nan), axis=0)

filtered_df = filtered_df[filtered_NZ_df['overall_satisfaction'].notnull()]

Какую концепцию я пропускаю?Спасибо :)

1 Ответ

0 голосов
/ 25 мая 2018

Таким образом, кажется, что ваши значения достаточно малы, чтобы быть представленными в виде нулей, но на самом деле не являются нулями.Обычно это происходит, когда вычисления приводят к исчезновению градиентов (действительно, небольших чисел, которые приближаются к нулю, но не совсем к нулю), поэтому сравнения на равенство не дают искомого результата.

В подобных случаяхУ numpy есть удобная функция под названием isclose, которая позволяет вам проверить, достаточно ли число близко к другому числу в пределах определенного допуска.

В вашем случае выполнение

df = df[~np.isclose(df['overall_satisfaction'], 0)]

Кажется, работает.

...