【问题标题】:How to convert timestamp to pandas to_datetime?如何将时间戳转换为熊猫 to_datetime?
【发布时间】:2021-09-23 11:28:27
【问题描述】:

我确实意识到这里已经解决了这个问题。不过,我希望这个问题有所不同。

我有一个dataframe,时间戳为object

sample = {"Timestamp" : ["2021-03-19-17.03.19.149168", "2021-02-26-17.03.40.062637",
                         "2021-02-26-17.00.35.580631", "2021-06-09-18.03.38.497239", 
                         "2021-06-09-18.03.38.497239"]}

test = pd.DataFrame(sample)

我正在尝试将对象类型转换为 pandas datetime

test["Timestamp"] = pd.to_datetime(test["Timestamp"], 
                                   format="%Y-%m-%d-%H.%M.%S.%Z",
                                   errors="coerce")

使用上面的代码返回

    Timestamp
0   NaT
1   NaT
2   NaT
3   NaT
4   NaT

如何将上述时间戳转换为pandasdatetime类型?

【问题讨论】:

  • Pandas 很聪明,如果你不太在意性能,你可以直接做 pd.to_datetime(test['Timestamp'], errors='coerce')`。
  • @QuangHoang 由于这些点,这不适用于 OP 的示例。在没有对 NaT 强制的 pandas 1.1.5 上:ParserError: Unknown string format: 2021-03-19-17.03.19.149168

标签: python pandas datetime string-to-datetime


【解决方案1】:

您的格式不正确,您使用的是%Z(时区)而不是%f(微秒)。后者按预期工作:

>>> pd.to_datetime(test["Timestamp"], format="%Y-%m-%d-%H.%M.%S.%f")

0   2021-03-19 17:03:19.149168
1   2021-02-26 17:03:40.062637
2   2021-02-26 17:00:35.580631
3   2021-06-09 18:03:38.497239
4   2021-06-09 18:03:38.497239
Name: Timestamp, dtype: datetime64[ns]

【讨论】:

    猜你喜欢
    • 2016-03-27
    • 1970-01-01
    • 2019-04-26
    • 2017-12-12
    • 2020-12-01
    • 2020-09-11
    • 2018-09-23
    • 2020-04-16
    • 2014-10-28
    相关资源
    最近更新 更多