У меня есть куча данных, которые я читаю из CSV-файла, подобного этому, в Pandas с df = pd.read_csv('C:\\User\\desktop\\master.csv', parse_dates=[['Date', 'Time']])
Date Time kW
3/1/2011 12:15:00 AM 171.36
3/1/2011 12:30:00 AM 181.44
3/1/2011 12:45:00 AM 175.68
3/1/2011 1:00:00 AM 180.00
3/1/2011 1:15:00 AM 175.68
, выполняющим df.head()
печать:
Date_Time kW
0 2011-03-01 00:15:00 171.36
1 2011-03-01 00:30:00 181.44
2 2011-03-01 00:45:00 175.68
3 2011-03-01 01:00:00 180.00
И мой эксперимент по машинному обучению, который я пытаюсь добавить в некоторые дополнительные столбцы, основанные на отметке времени день недели, час, минута.
df['month'] = df.Date_Time.dt.month
df['Day_of_week'] = df.Date_Time.dt.dayofweek
df['hour'] = df.Date_Time.dt.hour
df['minute'] = df.Date_Time.dt.minute
Не зная, что я делаю, мой код для sci kitузнайте ниже, где я пытаюсь следовать этому сообщению SO с той же ошибкой типа.
columns = df.columns.tolist()
columns = [c for c in columns if c not in ['kW', 'date']]
from sklearn import tree
clf = tree.DecisionTreeClassifier(max_depth=2, min_samples_leaf = (len(df)/100) )
clf = clf.fit(df[columns],df['kW'])
Создает ту же ошибку, что и сообщение SO выше, но решение не исправляет мойвыпуск: float() argument must be a string or a number, not 'Timestamp'
РЕДАКТИРОВАТЬ
Если я печатаю df.dtypes
:
Date_Time datetime64[ns]
kW float64
month int64
Day_of_week int64
hour int64
minute int64
dtype: object
Если я печатаюa df.columns
: Index(['Date_Time', 'kW', 'month', 'Day_of_week', 'hour', 'minute'], dtype='object')