【发布时间】:2021-12-24 05:21:34
【问题描述】:
我有一个数据框,我试图将其分成小时和天,因此我可以将“一天中的小时”用作 (1,2,3,...,22,23,24) 作为 ID 变量一个项目。
我在将.dt.hour 投射到我的日期列时遇到问题,它吐出:
AttributeError: Can only use .dt accessor with datetimelike values
目前,我的日期格式是:
YYYY-MM-DD HH:MM:SS+00:00,我假设错误出现在 00:00
这是数据框的示例:
date btc_open btc_close
0 2021-01-01 00:00:00+00:00 28905.984003808422 29013.059128535537
1 2021-01-01 01:00:00+00:00 29016.129189426065 29432.828723553906
2 2021-01-01 02:00:00+00:00 29436.647295100185 29212.8610969002
对于可重现的代码(带有错误消息),请看下面。
data = pd.DataFrame({'date': ['2021-01-01 00:00:00+00:00','2021-01-01 01:00:00+00:00','2021-01-01 02:00:00+00:00'],
'btc_open': [28905.98, 29016.12, 29436.64],
'btc_close': [29013.05, 29432.82, 29212.86]})
data['date'] = pd.to_datetime(data['date'], format = '%Y-%m-%d %H:%M:%S')
df_subset_1 = data[['date','btc_open','btc_close']]
# Converting datehour to date and hour columns
df_subset_1['date'] = df_subset_1['date'].dt.date
df_subset_1['hour'] = df_subset_1['date'].dt.hour
有人知道怎么做吗?
【问题讨论】:
-
df_subset_1['date'] = df_subset_1['date'].dt.date使df_subset_1['date']成为日期对象列,不允许使用 dt 访问器。只需将列的 dtype 保留为 pandas datetime。
标签: python-3.x pandas datetime