繁体   English   中英

如何从分类数据中提取小时、星期几?

[英]How to extract hour, day of the week from categorical data?

我有这样的数据(这是一个时间序列问题):

Time                    y
2017-01-01 00:00:00   34002
2017-01-01 01:00:00   37947
2017-01-01 02:00:00   41517
2017-01-01 03:00:00   44476
2017-01-01 04:00:00   46234

我想提取小时、星期几和休息日作为分类变量,但不知何故它不起作用:

data = pd.DataFrame(dataset)
data.columns = ["y"]

data.index = pd.to_datetime(data)
data["hour"] = data.index.hour
data["weekday"] = data.index.weekday
data['is_weekend'] = data.weekday.isin([5,6])*1

data.head()

Python抛出以下错误,我不知道该怎么办:

 2 data.columns = ["y"]
      3 
----> 4 data.index = pd.to_datetime(data)
      5 data["hour"] = data.index.hour
      6 data["weekday"] = data.index.weekday

ValueError: to assemble mappings requires at least that [year, month, day] be specified: [day,month,year] is missing

详细说明@MrFruppes 评论中包含的答案:

这里的问题是我们试图将 DataFrame 数据转换为datetime对象,而不是将 DataFrame 的索引转换为datetime对象。

可以使用.index属性访问 DataFrame 的索引。 将这些值输入.to_datetime()方法并将输出分配给data.index允许我们用已转换为datetime对象的新值覆盖原始值。

import pandas as pd
data = pd.DataFrame(dataset)
data.columns = ['y']

在这里,我们访问.index并对其进行转换。

data.index = pd.to_datetime(data.index)
data["hour"] = data.index.hour
data["weekday"] = data.index.weekday
data['is_weekend'] = data.weekday.isin([5,6])*1

data.head()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM