用pandas从csv中提取小时数

时间:2014-11-13 04:00:38

标签: python time pandas

我有一个看起来像这样的csv

time,result
1308959819,1
1379259923,2
1318632821,3
1375216682,2
1335930758,4

次是unix格式。我想从这样的时间中提取小时数,并根据这些值对文件进行分组。

我试过

times = pd.to_datetime(df.time, unit='s')

甚至

times = pd.DataFrame(pd.to_datetime(df.time, unit='s'))

但在这两种情况下我都遇到了错误

times.hour
>>>AttributeError: 'DataFrame' object has no attribute 'hour'

2 个答案:

答案 0 :(得分:1)

您收到该错误是因为系列和数据框架没有hour属性。您可以使用.dt便利访问权限(文档here)访问所需信息:

>>> times = pd.to_datetime(df.time, unit='s')
>>> times
0   2011-06-24 23:56:59
1   2013-09-15 15:45:23
2   2011-10-14 22:53:41
3   2013-07-30 20:38:02
4   2012-05-02 03:52:38
Name: time, dtype: datetime64[ns]
>>> times.dt
<pandas.tseries.common.DatetimeProperties object at 0xb5de94c>
>>> times.dt.hour
0    23
1    15
2    22
3    20
4     3
dtype: int64

答案 1 :(得分:0)

您可以使用内置datetime类来执行此操作。

import datetime

# your code here

hours = datetime.datetime.fromtimestamp(df.time).hour