0

所以我已经将 pandas 升级到 0.24.2,我有一个:

 Already tz-aware, use tz_convert to convert.

对于这一行:

df["Created"] = df['Created'] = df['Created'].dt.tz_localize('Europe/London', nonexistent='shift_forward').dt.tz_convert('Europe/Paris')

但我需要转换它,因为如果不是,我有一个不存在的时间错误。

所以我看到了这条消息:

“TypeError:已经 tz-aware,使用 tz_convert 进行转换。” 当我更新熊猫时

这是我的代码:

data = result["Document"]
df = pd.DataFrame(data)

df["Created"] = pd.to_datetime(df["Created"])

df["Created"] = df['Created'] = df['Created'].dt.tz_localize('Europe/London', nonexistent='shift_forward').dt.tz_convert('Europe/Paris')
4

1 回答 1

0
df["Created"] = df['Created'] = df['Created']...

可能不正确,但不太可能是错误的根本原因。

Already tz-aware, use tz_convert to convert.错误无法重现如下。可能是由于缺少正确的输入数据。

下面的输入数据以Datetimeas naive (no tz) 开头,希望调用来tz_localize阐明错误。

import pandas as pd
from pandas.compat import StringIO

print(pd.__version__)

csvdata = StringIO("""Created,open,high,low,close,volume
2019-04-02 05:59:00,381.00,381.00,379.70,379.70,0
2019-04-02 05:58:00,380.90,380.90,380.85,380.85,5040
,380.85,380.95,380.65,380.95,9615
2019-04-02 05:56:00,380.60,381.20,380.60,381.00,13041
2019-04-02 05:55:00,379.80,380.60,379.80,380.60,19586""")

#df = pd.read_csv(csvdata, sep=",", index_col="Created", parse_dates=True, infer_datetime_format=True)
df = pd.read_csv(csvdata, sep=",")

df["Created"] = pd.to_datetime(df["Created"])
print(df)

df['Created'] = df['Created'].dt.tz_localize('Europe/London', nonexistent='shift_forward').dt.tz_convert('Europe/Paris')
print(df)

结果是

0.24.2
              Created    open    high     low   close  volume
0 2019-04-02 05:59:00  381.00  381.00  379.70  379.70       0
1 2019-04-02 05:58:00  380.90  380.90  380.85  380.85    5040
2                 NaT  380.85  380.95  380.65  380.95    9615
3 2019-04-02 05:56:00  380.60  381.20  380.60  381.00   13041
4 2019-04-02 05:55:00  379.80  380.60  379.80  380.60   19586
                    Created    open    high     low   close  volume
0 2019-04-02 06:59:00+02:00  381.00  381.00  379.70  379.70       0
1 2019-04-02 06:58:00+02:00  380.90  380.90  380.85  380.85    5040
2                       NaT  380.85  380.95  380.65  380.95    9615
3 2019-04-02 06:56:00+02:00  380.60  381.20  380.60  381.00   13041
4 2019-04-02 06:55:00+02:00  379.80  380.60  379.80  380.60   19586

于 2019-04-11T18:14:01.063 回答