提问人:ak40837 提问时间:9/13/2020 更新时间:9/14/2020 访问量:2557
如何将德美利证券的 API 时间戳转换为 pandas 日期时间?
How do you convert TD Ameritrade's API time stamp to pandas datetime?
问:
我正在尝试使用 pandas 数据帧从我从 TD Ameritrade 的 API 中提取的股价数据创建时间序列可视化。为了做到这一点,我一直在尝试将数据帧列中的时间戳转换为日期时间对象。这样,我可以将日期时间列设置为新索引,并使用格式清晰的 x 轴进行可视化。datetime
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
.. ... ... ... ... ... ...
我尝试通过此线程中的建议实现这一目标,但无济于事。我还尝试使用以下代码:
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 不是合适的时间。
任何建议、反馈或其他资源将不胜感激!
答:
4赞
yibo
9/13/2020
#1
问题
pd.to_datetime 的默认时间单位以纳秒 (ns) 为单位,但您的列具有以毫秒 (ms) 为单位的时间戳。datetime
溶液
指定参数,以便正确解释时间戳。unit=ms
pd.to_datetime
>>> pd.to_datetime(1599822000000, unit='ms')
Timestamp('2020-09-11 11:00:00')
也可以使用 pd。时间戳
>>> pd.Timestamp(1599822000000, unit='ms')
Timestamp('2020-09-11 11:00:00')
上一个:防止基于标签有条件地合并分支
下一个:如何在循环中引用单元格?
评论