У меня есть файл excel, где имя столбца состоит из значения даты и времени.Как разрезать кадр данных Pandas по значению заголовка столбца, когда заголовок столбца является значением даты и времени?
Как вы можете видеть, значение заголовка в формате даты и времени. Я загрузил это в кадр данных Pandas, и значения заголовка действительно сохранены как значение даты-времени.
Теперь, если мне нужно запросить у Панд, например, «выбрать все столбцы, превышающие май-15», как я могу это сделать?
Я знаю, что по запросу df[df.columns[3:]]
я могу добиться этого. Но я действительно хочу срезать на основе значения заголовка столбца и не на основе позиции столбца.
Пожалуйста, помогите.
Edit: Основываясь на ответах ниже, я выяснил способ для запроса значений столбцов. Добавьте его сюда для дальнейшего использования.
from datetime import datetime
df[[col for col in df.columns if col not in ("Name", "Location")
and col >= datetime(2015,4,1)
and col <= datetime(2016,3,1)]]
или
from datetime import datetime
df.loc[:, [col for col in df.columns if col not in ("Name", "Location")
and col >= datetime(2015,4,1)
and col <= datetime(2016,3,1)]]
1-решение является наиболее элегантным. Понятно, что для разрезания столбцов в Pandas работает, когда назначенные столбцы представлены в виде списка. Сглаживание списков используется для среза столбцов на основе значений метки столбца. (а не значения внутри столбца). В примерах я отфильтровал столбцы «Имя» и «Местоположение», так как сравниваю оставшиеся столбцы на основе значения даты.
Я не знаю панду, но вы можете попробовать сделать фильтр заголовков, которые дата-время, и если они сопоставимы, сравните его по желаемому значению ... – Copperfield
@ HVS Любые обновления? – bakkal
@ HVS только что обновил мой ответ, вспомнив, что вы можете конвертировать столбцы в объекты datetime и использовать условные обозначения, как обычно! – user2589273