2

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

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
4

2 回答 2

1

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

pd.read_csv('pet_data.csv', parse_dates=['last_seen'], date_parser=dateutil.parser.parse, skipfooter=1)
于 2013-02-19T03:08:48.027 回答
1

这是一个错误

已在此 PR 中修复

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

于 2013-02-19T15:49:28.317 回答