为什么 sklearn OneHotEncoder 不能处理单个数据框列?
Why won't sklearn OneHotEncoder work with a single dataframe column?
我正在尝试获取单个 pandas 数据帧列的一次性编码。这是我得到的:
OH_encoder = OneHotEncoder(handle_unknown='ignore', sparse=False)
OH_cols_train = pd.DataFrame(OH_encoder.fit_transform(X_train['time_of_day']))
当运行这个时候,我得到了一个相当大的错误堆栈,可以总结如下:
ValueError: Expected 2D array, got 1D array instead:
我好像想不通。
这是一些示例数据:
X_train = pd.DataFrame({'ID': ['1234', '5678', '5678', '1234'],
'time_of_day': ['Morning', 'Afternoon', 'Evening', 'Morning']})
感谢任何帮助!
如果它说该方法需要一个二维数组,只需提供它
X_train['time_of_day'].to_frame()
您传递的不是 Dataframe,而是 Serie。
type(X_train['time_of_day'])
pandas.core.series.Series
您可以使用 X_train[['time_of_day']](与 [[ ]]):
type(X_train[['time_of_day']])
pandas.core.frame.DataFrame
像这样
OH_cols_train = pd.DataFrame(OH_encoder.fit_transform(X_train[['time_of_day']]))
我正在尝试获取单个 pandas 数据帧列的一次性编码。这是我得到的:
OH_encoder = OneHotEncoder(handle_unknown='ignore', sparse=False)
OH_cols_train = pd.DataFrame(OH_encoder.fit_transform(X_train['time_of_day']))
当运行这个时候,我得到了一个相当大的错误堆栈,可以总结如下:
ValueError: Expected 2D array, got 1D array instead:
我好像想不通。
这是一些示例数据:
X_train = pd.DataFrame({'ID': ['1234', '5678', '5678', '1234'],
'time_of_day': ['Morning', 'Afternoon', 'Evening', 'Morning']})
感谢任何帮助!
如果它说该方法需要一个二维数组,只需提供它
X_train['time_of_day'].to_frame()
您传递的不是 Dataframe,而是 Serie。
type(X_train['time_of_day'])
pandas.core.series.Series
您可以使用 X_train[['time_of_day']](与 [[ ]]):
type(X_train[['time_of_day']])
pandas.core.frame.DataFrame
像这样
OH_cols_train = pd.DataFrame(OH_encoder.fit_transform(X_train[['time_of_day']]))