我有一个这样的时间戳列。
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 :(得分:1)
我没有正确解析日期。正如你所看到的那样,1838年的所有日期都很明显!我使用了通用的dateutil解析器,上面的语句也可以。
pd.read_csv('pet_data.csv', parse_dates=['last_seen'], date_parser=dateutil.parser.parse, skipfooter=1)
答案 1 :(得分:1)