Pandas在发送POST请求时应用ValueError:错误的输入shape()

时间:2018-01-17 06:21:21

标签: python django pandas postman

我正在尝试使用以下代码在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)

有什么问题?为什么它在脚本中有效但在后期请求中不起作用?

1 个答案:

答案 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。