我在python中,我的数据框包含两个数值,如下所示
subject_id pH urinecolor blood pressure
3 1.00 red high
3 1.15 red high
4 2.00 yellow low
和categorical。我想缩放和规范化数据帧,但传统缩放给出错误的无法缩放字符串 我尝试以下操作,但是它给了我return as list,我想缩放列并返回整个数据框以进行进一步的操作,任何人都可以帮助我。预先感谢
df= pd.readcsv()
dfTest =df.select_dtypes(include='number')
scaler = StandardScaler(copy=True, with_mean=True, with_std=True)
dftest= df.select_dtypes(include=np.number)
X = scaler.fit_transform(dftest)
答案 0 :(得分:0)
缩放/归一化仅适用于数字列。对于分类列,还有其他可用的技术,例如label encoding
,one hot encoding
等。这是您可以做的:
from sklearn.preprocessing import StandardScaler
sc = StandardScaler()
# get numeric data
num_d = d.select_dtypes(exclude=['object'])
# update the cols with their normalized values
d[num_d.columns] = sc.fit_transform(num_d)
# convert string variable to One Hot Encoding
d = pd.get_dummies(d)
subject_id pH urinecolor_red urinecolor_yellow
0 -0.707107 -0.870563 1 0
1 -0.707107 -0.529908 1 0
2 1.414214 1.400471 0 1
希望这给您一些想法。