我有一個資料框,我試圖將其分為小時和天,因此我可以使用“一天中的小時”作為 (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
有誰知道如何使這項作業?
uj5u.com熱心網友回復:
保留一列 pandas datetime dtype(另請參閱時間序列/日期功能),例如:
import pandas as pd
data = pd.DataFrame({'datetime': ['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['datetime'] = pd.to_datetime(data['datetime'])
df_subset_1 = data[['datetime','btc_open','btc_close']]
# extract date and hour from datetime column
df_subset_1['date'] = df_subset_1['datetime'].dt.date
df_subset_1['hour'] = df_subset_1['datetime'].dt.hour
df_subset_1
datetime btc_open btc_close date hour
0 2021-01-01 00:00:00 00:00 28905.98 29013.05 2021-01-01 0
1 2021-01-01 01:00:00 00:00 29016.12 29432.82 2021-01-01 1
2 2021-01-01 02:00:00 00:00 29436.64 29212.86 2021-01-01 2
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/356599.html
下一篇:上個月的最后一天
