【发布时间】:2018-05-29 01:40:21
【问题描述】:
我正在尝试在 pandas DataFrame 中创建时区感知日期列。当我运行下面的代码时,生成的 pandas 列与我输入的日期时间不同。我在这里做错了什么?
我正在使用 python 3.6.2 和 pandas 0.20.3
from datetime import datetime
import pandas as pd
import pytz
date_string = "12/14/2016 12:00"
timezone = pytz.timezone("US/Pacific")
input_datetime = datetime.strptime(date_string, "%m/%d/%Y %H:%M").replace(tzinfo=timezone)
df = pd.DataFrame({"datetime":[input_datetime]})
如果我运行该代码,df['datetime'][0].minute 返回 53 而input_datetime.minute 返回 0。
当我不更换 tzinfo 时,我没有问题。
【问题讨论】:
-
发布您的实际代码,而不是屏幕截图。也看看this link。
-
改变是什么意思?是因为你打电话给
x的分钟数是10/5/16 0:00? -
@JosephK。
datetime.datetime(2016, 12, 14, 12, 0, tzinfo=<DstTzInfo 'US/Pacific' LMT-1 day, 16:07:00 STD>)在我创建 pandas DataFrame 后变为Timestamp('2016-12-14 11:53:00-0800', tz='US/Pacific')
标签: python pandas datetime pytz