【问题标题】:Pandas Convert Series from DateTimeStamp to datetime.datetime objectPandas 将系列从 Date TimeStamp 转换为 datetime.datetime 对象
【发布时间】:2017-02-06 12:37:53
【问题描述】:

我有一个 pandas 的数据框,其中有一列数据类型为:datetime64[ns]。

如何将整个系列转换为 Python 的 Datetime.datetime 对象?在单个对象上有一个名为to_datetime() 的函数,但我无法在系列上调用此函数。

谢谢

【问题讨论】:

  • 确实有问题,因为它会自动转换为 pandas 日期时间,但可以通过df.Date.dt.to_pydatetime() 转换为日期的numpy array
  • 所以这个df.Date = df.Date.dt.to_pydatetime() 仍然返回Date datetime64[ns]
  • 更好的是解释here

标签: python pandas datetime


【解决方案1】:

如果性能是一个问题,我建议使用以下函数将这些列转换为date_time:

def lookup(s):
    """
    This is an extremely fast approach to datetime parsing.
    For large data, the same dates are often repeated. Rather than
    re-parse these, we store all unique dates, parse them, and
    use a lookup to convert all dates.
    """
    dates = {date:pd.to_datetime(date) for date in s.unique()}
    return s.apply(lambda v: dates[v])
to_datetime: 5799 ms
dateutil:    5162 ms
strptime:    1651 ms
manual:       242 ms
lookup:        32 ms

【讨论】:

  • @erip 很棒的解决方案!效果很好。
  • @codebase5000 这不是我的解决方案!这是 SerialDev 的。
猜你喜欢
  • 2022-10-13
  • 2019-03-28
  • 1970-01-01
  • 2011-11-21
  • 2020-08-24
  • 2022-12-14
  • 2022-01-02
  • 1970-01-01
相关资源
最近更新 更多