Pandas Странный компонент datetime локализован и применяется - PullRequest
1 голос
/ 23 апреля 2020

Я сталкиваюсь со странным поведением применения 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, а не повторяется.

...