У меня есть панд dataframe (названный ей) и один из столбцов (дата) является TIMESTAMPприменения лямбда к TZ-Aware метка времени
s.date[0]
Out[126]:
Timestamp('2014-01-28 00:52:00-0500', tz='dateutil//usr/share/zoneinfo/America/New_York')
В какой-то момент в коде нужно выбрать подмножество s (используя idx, список логических элементов). Выход:
s.date[idx]
Out[125]:
1019 2014-12-01 00:52:00-05:00
1020 2014-12-01 01:52:00-05:00
1021 2014-12-01 02:52:00-05:00
Name: date, dtype: datetime64[ns, tzfile('/usr/share/zoneinfo/America/New_York')]
Поскольку я заинтересован только в час, я думал, что я просто не мог сделать:
s.date.hour
, но, конечно, я получаю ошибку
AttributeError: 'Series' object has no attribute 'hour'
Думая, что можно сделать:
s.date[0].hour
Out[128]: 0
I сказал, позвольте мне использовать лямбда, чтобы применить .hour к каждой «строке». Таким образом:
s.date[idx].apply(lambda x: x.hour)
Out[129]:
1019 5
1020 6
1021 7
Как вы можете видеть, я не получаю время в «Восточном времени», а скорее в формате UTC.
Я сделал поиск в Интернете, но ничего ... Есть ли способ получить не-UTC час?
Спасибо!
Используйте '.dt' аксессор ... – Kartik