Мне нравятся все эти методы «на месте», и я пытался использовать их для фильтрации отдельных строк из моего временного ряда данных:
df.drop(df[(df['location'] == 'City17') | (df['location'] == 'City17 ') | (df['location'] == 'CITY17')].index, inplace=True)
Но, что удивительно, это удалило намного больше данных, и у меня остались только осталось одно свидание Дата была где-то посередине моего DateTime
интервала; не первый и не последний. Я нашел решение с помощью оператора присваивания следующим образом:
df = df[(df['location'] != 'City17') & (df['location'] != 'City17 ') & (df['location'] != 'CITY17')]
Теперь я теперь, когда назначения короче и работают быстрее, чем inplace
методы, но я все еще удивляюсь, почему первый .drop
работал так что.
Обновление Благодаря комментарию Хонгси и лучшему ответу по его ссылке, я решил проблему. Точка была в формате столбца даты. Это был object
, и после того, как я преобразовал его в DateTime
, мой .drop
метод работал правильно. Я до сих пор понятия не имею, почему он так оценивает, но это еще одно доказательство того, что все столбцы Date
должны иметь тип DateTime
.