pandas 以动态方式转换时间戳

pandas convert timestamp in a dynamic way

我有一个具有以下时间戳的数据框。总计 5600000 行!

time                                   SD
2016-01-02 11:23:04.299000+00:00       1
2016-02-02 11:23:04.299000+00:00       2
2016-03-02 11:23:04.299000+00:00       2
2016-04-01 11:23:04.299000+00:00       3   

因为我在做下面的操作,所以报错

(TypeError: Timestamp subtraction must have the same timezones or no timezones)

(pd.to_datetime("2016-01-02 11:23:04.299000+00:00") - pd.Timestamp("1970-01-01"))

我知道问题所在,可以通过(pd.to_datetime("2016-01-02 11:23:04") - pd.Timestamp("1970-01-01"))

解决

我正在为这个问题寻找一个优化的解决方案,因为我认为它不是一个迭代所有“时间”行的好方法,它需要很多时间。

我得到的格式可能与我现在在数据框中的格式不同。

我可以用“pandas”做些什么吗? 提前致谢!

IIUC 这将使用 numpy 和 pandas 来获取两列之间的数据差异,而第二列没有时区

import pandas as pd
import numpy as np

df['time'] = pd.to_datetime(df['time'], infer_datetime_format = True)
df['date_to_subtract'] = pd.to_datetime('1970-01-01')
df['difference'] = df['time'].values - df['date_to_subtract'].values