由于之前用countencoder时,用了以下写法:
# countEncoder:
for col in cols:
df_new[col+ '_cnt_code'] = df_new[col].map( df_new[col].value_counts() )
df_new.drop(columns = cols, inplace= True)
所以当使用one-hot时,照葫芦画瓢:
for i in cols1:
df_new[i + '_one_hot'] = pd.get_dummies(df_new[i].astype(str))
结果报错:
Wrong number of items passed 6, placement implies 1
报错原因:你尝试将一个函数应用于数据框的某列,该函数预期只有一个参数,但实际上却传入了六个参数。这通常发生在你对一个预期为单列的函数传递了整个数据框或多个列时。这个错误可能与你尝试对数据框中的多列进行操作有关.
改正:
df_new = pd.get_dummies(df_new, columns=cols1)
问题解决