我正试图使用pandas数据框从我从TD Ameritrade的API中提取的股价数据创建一个时间序列可视化。为了做到这一点,我一直在尝试将dataframe的datetime
列中的时间戳转换为datetime对象。通过这种方式,我可以将datetime列设置为新索引,并使用格式清晰的x轴进行可视化
open high low close volume datetime
0 336.89 336.90 336.69 336.77 26232 1599822000000
1 336.90 337.05 336.69 336.92 13180 1599822300000
2 336.98 337.24 336.98 337.23 31810 1599822600000
3 337.01 337.25 337.00 337.15 8749 1599822900000
4 337.10 337.10 336.70 336.70 9664 1599823200000
.. ... ... ... ... ... ...
我试图通过本thread中的建议实现这一点,但没有任何效果。我还尝试使用以下代码:
df['adj_datetime'] = pd.to_datetime((df['datetime']/1000))
然而,结果是:
open high ... datetime adj_datetime
0 336.89 336.90 ... 1599822000000 1970-01-01 00:00:01.599822000
1 336.90 337.05 ... 1599822300000 1970-01-01 00:00:01.599822300
2 336.98 337.24 ... 1599822600000 1970-01-01 00:00:01.599822600
3 337.01 337.25 ... 1599822900000 1970-01-01 00:00:01.599822900
4 337.10 337.10 ... 1599823200000 1970-01-01 00:00:01.599823200
.. ... ... ... ... ...
这不是我想要的结果,因为1.)这是2020-09-11年的数据,2.)这不是延长交易时间的数据,所以上午12:01不是合适的时间
任何建议、反馈或额外资源都将不胜感激
问题
pd.to_datetime中的默认时间单位是纳秒(ns),但是
datetime
列的时间戳是毫秒(ms)解决方案
指定参数
unit=ms
,以便pd.to_datetime
正确解释时间戳也可以使用pd.Timestamp
相关问题 更多 >
编程相关推荐