вот мой ввод df:
df:
date , name
1990-12-21, adam1
1990-12-22, adam2
1990-12-23, adam3
1990-12-24, adam4
1990-12-25, adam5
Я хочу выбрать все даты выше заданной даты из списка (всегда на первом месте)
list = ['1990-12-23','name','22']
df = pd.to_datetime(df['date'))
df = df[df.date > list[0]]
И это работает.
Мой вопрос: почему он работает без преобразования этого первого элемента списка в формат даты и времени?






Pandas имеет гибкую частичную индексацию строк. Это позволяет использовать даты и время, которые могут быть автоматически преобразованы в datetime или timestamp, в виде строк без предварительного преобразования.
спасибо, это означает, что если строка выглядит так же, как даты в DF, она обрабатывается как дата и время?, если она будет выглядеть так: 1990/02/23, она не будет? Я имею в виду, что если панды могут «вырезать» выбранную дату в строковом формате, что произойдет, если даты не будут отсортированы?
еще один вопрос, когда я конвертирую свой элемент из списка в дату и время в пандах, я получаю эту ошибку: TypeError: '>' not supported between instances of 'str' and 'Timestamp' и также для предыдущего решения, знают ли панды, когда я использую строку, для сортировки этих дат?
Да, этот формат также будет работать. Но в целом, поскольку может возникнуть некоторая путаница между порядком дат и месяцев (например, «1990/03/05»), я считаю безопаснее всегда сначала преобразовывать дату и время в указанный формат.