3
我的一個數據框列是日期。爲了我的分析中使用它,我將其轉換爲日期時間如下:在sklearn.cross_validation.cross_val_score中使用python pandas時間戳
datetime_columns = ['my_dates']
for c in datetime_columns:
df[c] = pd.to_datetime(df[c], infer_datetime_format=False)
轉換這項工作:
print df['my_dates'].dtype
datetime64[ns]
然而,當我再使用它,sklearn.cross_validation.cross_val_score()
拋出TypeError
異常:
features = df[list(feature_columns)] # Includes 'my_dates'
labels = df[list(target_columns)]
cross_val_score(LinearRegression(), features.values, labels.values, cv=5)
TypeError: float() argument must be a string or a number
我所有的其他列(不my_dates)具有數字格式:
print list((set(features.dtypes).union(set(labels.dtypes))))
[dtype('int8'), dtype('int64'), dtype('float64')]
只有當'my_dates'列包含在功能中時,纔會發生此錯誤。 cross_val_score()
似乎不適用於時間戳,但我在分析中需要它。什麼是pythonic或pandastic的方式來使其工作?
爲什麼你不能調用'cross_val_score時使用'datetime'列字符串() '? – MaxU
@MaxU字符串返回相同的'TypeError' – Ana
可以發佈以下輸出:'print(features.dtypes); print(labels.dtypes)' – MaxU