Python — получить столбец последней даты

#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 Я сделаю это, без проблем 😉