Панды: как локализовать DateTimeIndex не как tz_aware? - PullRequest
0 голосов
/ 11 сентября 2018

Существует проблема Pandas (описанная в # 22619 и связанная с # 9119 ), которая не позволяет группировать данные по неделям, если их DateTimeIndex имеет был локализован.

Я читаю из базы данных UTC данные, которые я хочу сгруппировать по местному времени, но это не может быть сделано из-за этой проблемы.

Я нашел обходной путь, рассчитав индекс недели по юлианскому дню и используя его для группировки:

df["week"] = ((df.index.to_julian_date()+0.5)/7).astype(int)
grouped = df.groupby(df["week"])

Мне любопытно еще одна возможность, но я не знаю синтаксиса Панд .

Я хочу изменить исходный индекс на основе UTC на местное время, но без сохранения информации о tz: без информации о tz => без ошибок.

import pandas as pd

print("UTC from database:")
df = pd.DataFrame({'DTIME': [pd.datetime(2018,12,20,10,20,30)], 
                   'VALUES': [123]}).set_index("DTIME")
print(df)

print("-------------------------")
print("UTC localized:")
df = df.tz_localize("utc")
print(df)

print("-------------------------")
print("Europe/Berlin localized:")
df = df.tz_convert("Europe/Berlin")
print(df)

print("-------------------------")
print("Local Time index as string")
df.index = df.index.strftime("%Y-%m-%d %H:%M:%S")
print(df)

возвращается:

UTC from database:
                     VALUES
DTIME                      
2018-12-20 10:20:30     123
-------------------------
UTC localized:
                           VALUES
DTIME                            
2018-12-20 10:20:30+00:00     123
-------------------------
Europe/Berlin localized:
                           VALUES
DTIME                            
2018-12-20 11:20:30+01:00     123
-------------------------
Local Time index as string
                     VALUES
2018-12-20 11:20:30     123

Конечно, я не могу группировать по строкам.

Из любопытства, как это можно сделать?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...