【问题标题】:Timestamp fetched from websockets formatting从 websockets 格式中获取的时间戳
【发布时间】:2018-07-14 09:33:01
【问题描述】:

我是新来的,需要帮助来了解如何使用 pandas 中使用的日期时间对象的时间戳。我使用 websockets 将一些数据保存在 csv 文件中,并将该 csv 文件加载到 pandas 数据框中。在我的时间戳列中,我得到了类似[2018-02-04T07:49:36.867Z, 2018-02-04T07:49:56.931Z and so on] 的内容。

我必须使用时间数据来操作其他数据列,例如在特定持续时间(例如 1 分钟、3 分钟等)内重新采样(使用 pandas)。 但是我不能应用重新采样,因为日期和时间的格式不正确,比如[20180204 07:49:56.931, 20180204 07:49:56:931 and so on]

如何在 pandas/python 中实现这种转换。我只是删除这些不需要的字符然后应用日期时间转换只是简单的第一个字符串操作。任何有关如何进行的帮助都会有所帮助。

我什至不知道从哪里开始,因为我从未遇到过这种格式。

【问题讨论】:

  • 有几种方法可以做到这一点。例如 python 中的正则表达式,或简单的字符串替换。但我会建议这样的事情:stackoverflow.com/questions/466345/…,然后使用 datetime 对象的字符串格式方法。此处的文档:docs.python.org/2/library/datetime.html#module-datetime
  • 对文本的编辑和错误格式感到抱歉...我在使用智能手机..
  • 另一件事。如果您可以控制客户端,也许时间戳发送是可配置的?

标签: python string python-3.x pandas datetime


【解决方案1】:

这是一种方式,使用pandas:

import pandas as pd

d = '2018-02-04T07:49:36.867Z'

d_pd = pd.to_datetime(d)  # Timestamp('2018-02-04 07:49:36.867000')
d_str = d_pd.strftime('%Y%m%d %T.%f')[:-3]  # '20180204 07:49:36.867'

【讨论】:

  • 感谢您的回复,我也做了同样的事情,删除了不需要的字符串,然后将时间戳更改为 datetime。
猜你喜欢
  • 2019-10-25
  • 2021-10-27
  • 2011-10-29
  • 2016-03-25
  • 1970-01-01
  • 2020-12-03
  • 1970-01-01
  • 1970-01-01
  • 2014-04-17
相关资源
最近更新 更多