熊猫:如何将DateTimeIndex本地化而不是tz_aware?

时间:2018-09-11 09:02:35

标签: pandas syntax

存在一个熊猫问题(在#22619进行了描述,并链接到#9119),如果 DateTimeIndex 已本地化,则不允许按周分组数据。

>

我正在从数据库中读取我想按本地时间进行分组的基于UTC的数据,但是由于这个问题,无法做到这一点。

我找到了一种变通方法,方法是通过计算儒略日的星期指数并将其分组:

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

我对另一种可能性感到好奇,但我不知道Pandas语法

我想将基于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

我当然不能按字符串分组。

出于好奇,该怎么办?

0 个答案:

没有答案