【问题标题】:pandas timestamp subtraction熊猫时间戳减法
【发布时间】:2013-02-03 14:58:02
【问题描述】:

我有一个这样的时间戳列。

In [493]: df_data['last_seen'][:5]
Out[493]: 
1   1838-10-31 01:36:32.493180416
2   1826-08-10 09:38:02.493180416
3   1839-05-04 21:14:42.493180416
4   1831-06-11 17:44:24.493180416
5   1820-01-26 10:32:07.493180416
Name: last_seen

我想要自每行的最近时间戳以来经过的小时数。所以我写了

df['last_seen'] = df['last_seen'] - df['last_seen'].max() 

这会引发错误。

AttributeError: 'Timestamp' object has no attribute 'dtype'

请注意,当我要求时:

>>> type(df['last_seen']) 
>>> pandas.core.series.Series

>>> type(df_data['last_seen'][1])
>>> pandas.tslib.Timestamp

【问题讨论】:

  • 这应该适用于 0.11-dev(当前主),不确定以前的版本。你在什么版本?你能显示 df['last_seen'] 的 dtype 吗?

标签: python datetime pandas


【解决方案1】:

这是一个错误

已在此 PR 中修复

https://github.com/pydata/pandas/pull/2899

【讨论】:

    【解决方案2】:

    我没有正确解析日期。正如你所看到的,从 1838 年的所有这些日期中可以明显看出这一点!我使用了通用的 dateutil 解析器,上面的语句有效。

    pd.read_csv('pet_data.csv', parse_dates=['last_seen'], date_parser=dateutil.parser.parse, skipfooter=1)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-01-31
      • 2019-06-08
      • 2020-12-06
      • 1970-01-01
      • 2017-02-23
      • 2020-04-16
      • 1970-01-01
      • 2014-10-28
      相关资源
      最近更新 更多