【发布时间】:2017-07-04 10:20:10
【问题描述】:
我有一个带有 None 值的 pandas 日期时间列,我想在特定时区用 datetime.now() 填充。
这是我的 MWE 数据框:
df = pd.DataFrame([
{'end': "2017-07-01 12:00:00"},
{'end': "2017-07-02 18:13:00"},
{'end': None},
{'end': "2017-07-04 10:45:00"}
])
如果我填写fillna:
pd.to_datetime(df['end']).fillna(datetime.now())
结果是一个具有预期 dtype 的系列:datetime64[ns]。但是当我指定时区时,例如:
pd.to_datetime(df['end']).fillna(
datetime.now(pytz.timezone('US/Pacific')))
这将返回一个数据类型为:object的系列
【问题讨论】:
-
期望的输出是什么?您是否需要列中的混合时区? UTC 与
US/Pacific? -
请注意,这样做会将所有时间戳转换为该时区,最终结果是正确的,如果您查看任何特定元素值,它就是带有所需时区信息的时间戳。只是numpy没有支持这个的dtype,但是dtype是时间戳,支持数值运算
标签: pandas datetime python-3.6