我有一个看起来像这样的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'
答案 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