我正在尝试使用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不是合适的时间。
如有任何建议、反馈或其他资源,我们将不胜感激!
发布于 2020-09-13 07:15:19
问题
pd.to_datetime中的默认时间单位是纳秒(ns),但是您的datetime列具有毫秒(ms)的时间戳。
解决方案
指定参数unit=ms,以便pd.to_datetime正确解释时间戳。
>>> pd.to_datetime(1599822000000, unit='ms')
Timestamp('2020-09-11 11:00:00')也可以使用pd.Timestamp
>>> pd.Timestamp(1599822000000, unit='ms')
Timestamp('2020-09-11 11:00:00')https://stackoverflow.com/questions/63865668
复制相似问题