我正在尝试使用以下代码在django框架中实现API:
def worker_label_encoder(df,selected_col):
le = LabelEncoder()
enc = le.fit(np.unique(df[selected_col]))
df[selected_col] = df[selected_col].apply(enc.fit_transform)
当我在Atom上的脚本中尝试它时它工作正常。 但是当我使用邮递员发送带有此API的POST请求时,它会返回
ValueError: bad input shape ()
在这一行:
df[selected_col] = df[selected_col].apply(enc.fit_transform)
有什么问题?为什么它在脚本中有效但在后期请求中不起作用?
答案 0 :(得分:0)
您的代码中存在一些问题。
第一个apply函数应该有第一个参数作为您为其提供整个数据帧的列的值。
第二个为什么你做得合适然后fit_transform。标准流程是fit_transform或简单拟合和转换。您应该查看此示例here以了解LabelEncoder的工作原理。
如果你想完成你想要做的事情,那么有一种更简单的方法,比如
le = LabelEncoder()
le.fit(df.selected_col.values)
# Lable encode target variable
df['selected_col'] = le.transform(
train_df.selected_col.values)
如果您还有其他值,那么您只需要进行转换。无需再次进行fit_transform。