Я сталкиваюсь со странным поведением применения pandas к ненативному столбцу даты и времени (pandas версия 0.24.1)
import pytz,tzlocal
from datetime import datetime,timezone
now=datetime.now(timezone.utc)
#now=datetime.now()
df=pd.DataFrame([{"now":now,"a":1},{"now":now,"a":3}])
def pr(x):
print("* "*20)
print(x.hour)
print("# "*20)
df["now"].apply(pr)
df:
a now
0 1 2020-04-23 12:07:28.749269
1 3 2020-04-23 12:07:28.749269
результат с non-naive:
* * * * * * * * * * * * * * * * * * * *
Int64Index([11, 11], dtype='int64')
# # # # # # # # # # # # # # # # # # # #
* * * * * * * * * * * * * * * * * * * *
11
# # # # # # # # # # # # # # # # # # # #
* * * * * * * * * * * * * * * * * * * *
11
# # # # # # # # # # # # # # # # # # # #
результат с naive:
* * * * * * * * * * * * * * * * * * * *
12
# # # # # # # # # # # # # # # # # # # #
* * * * * * * * * * * * * * * * * * * *
12
# # # # # # # # # # # # # # # # # # # #
Любая идея, почему, когда это не наивное datetime, функция apply вызывается на большее время?
Когда в первом дополнительном прогоне возникает ошибка, кажется, что она перехватывается pandas, а не повторяется.