我正在尝试用一个从mongodb文档中的数据创建的Pandas Dataframe 来计算与纪元秒数的偏移。
数据布局和操作的示例如下所示(此代码工作正常)
data = {'ds': ['2018-01-13 18:47:05.069722+00:00', '2018-01-14 18:47:05.119994+00:00', '2018-01-15 18:47:05.178768+00:00'],
'y': [38, 20, 26]}
df = pd.DataFrame(data, columns = ['ds', 'y'])
df['ds'] = pd.to_datetime(df['ds'])
t = np.array(
(df['ds'] - pd.datetime(1970, 1, 1))
.dt.total_seconds()
.astype(np.float)
) / (3600 * 24.)
请注意,但是上面代码中ds列的dtype是
datetime64[ns]
而实际Pandas数据中date列的dtype为
datetime64[ns, <bson.tz_util.FixedOffset objec...
我能够解决这个问题的唯一方法是将其转换为string,然后再转换回date:
dates = df['ds'].apply(lambda x: x.strftime('%Y-%m-%d %H:%M:%S'))
df['ds'] = pd.to_datetime(dates)
有没有更好的方法来转换
datetime64[ns, <bson.tz_util.FixedOffset object
转换为datetime64[ns]列类型的Pandas?
2条答案
按热度按时间yfwxisqw1#
这对我很有效。
mnemlml82#
起作用