#python #pandas #list #dataframe #datetime
#python #pandas #Список #фрейм данных #дата и время
Вопрос:
Проблема: у меня есть фрейм данных pandas, в котором есть несколько столбцов. Например, некоторые столбцы представляют собой строки в виде дат: ["A", "2019-12-01 00:00:00", "2020-01-01 00:00:00"]
Вопрос: Как выбрать столбец последней даты в этом случае, учитывая, что расположение столбца может отличаться в какой-то момент времени? В приведенном выше примере последняя дата из ["A", "2019-12-01 00:00:00", "2020-01-01 00:00:00"]
будет "2020-01-01 00:00:00"
Возможное решение: я думал о том, чтобы потенциально выполнить поиск регулярных выражений, чтобы сопоставить числа и тире и найти строки, которые соответствуют определенному формату даты и времени, используя что-то вроде date_list = regex.match(columns)
затем преобразовать все в datetime, найти максимальную дату, выполнив max_date = date_list.max()
, а затем df[str(max_date)]
В: Но, может быть, есть какой-то встроенный способ или просто лучший способ сделать это, чем возможное решение?
Ответ №1:
Преобразование имен столбцов в даты с pd.to_datetime
errors='coerce'
помощью параметра и для игнорирования значений, отличных от datetime, а затем max
:
cols = ["A", "2019-12-01 00:00:00", "2020-01-01 00:00:00"]
pd.to_datetime(cols, errors='coerce').max()
Вывод:
Timestamp('2020-01-01 00:00:00')
Комментарии:
1. Превосходно! Спасибо! Похоже, это было то, что я искал. Позвольте мне проверить, работает ли это с моей стороны 🙂
2. Я пытался, но мне пришлось подождать еще 2 минуты: D Я сделаю это, без проблем 😉