问题描述
我正在尝试将所有非数字列转换为数字数据类型,但是会通过错误
TypeError:参数必须是字符串或数字
for column in clean_df.columns:
if clean_df[column].dtype == np.number:
continue
clean_df[column] = LabelEncoder.fit_transform(clean_df[column])
TypeError:fit_transform()缺少1个必需的位置参数:“ y”
解决方法
您可以将列转换为like(.toarray())。返回具有相同形状和相同表示数据的数组。
for column in clean_df.columns:
if clean_df[column].dtype == np.number:
continue
clean_df[column] = LabelEncoder().fit_transform(clean_df[column]).toarray()
,
import numpy as np
X = clean_df.select_dtypes(include=[np.object])
#For loop to loop one by one with col type object
for col in X.columns:
X[col]=pd.Categorical(X[col],categories=clean_df[col].dropna().unique())
#creating dummy variable
X_col = pd.get_dummies(X[col])
X = X.drop(col,axis=1)
X_col.columns = X_col.columns.tolist()
frames = [X_col,X]
X = pd.concat(frames,axis=1)
您可以尝试!