2024-10-01 00:21:37 发布
网友
尝试使用StandartScaler()仅规范化特定的数字列
StandartScaler()
检查了几个SO问题,但未能解决
所有列都是浮点或整数
cols_to_norm = ['A','B','C'] train_data[cols_to_norm] = StandardScaler().fit_transform(train_data[cols_to_norm]) KeyError: "['A'] not in index"
A列为64
当前DF
假设您的train_data确实有索引A(如果没有,那么它无论如何也不会工作)
train_data
A
您正在错误地使用这些索引。如果要选择多个列,则需要使用双括号语法(否则列名列表将被视为单独的参数)
train_data[[cols_to_norm]]
下面是一个简单的例子
data.csv
a,b,c 1,1,0 2,3,4 1,0,0
app.py
import pandas as pd from sklearn.preprocessing import StandardScaler df = pd.read_csv("./data.csv") print(df.values) # [[1 1 0] # [2 3 4] # [1 0 0]] scaler = StandardScaler() df[['a', 'b']] = scaler.fit_transform(df[['a', 'b']]) print(df) # a b c # 0 -0.707107 -0.267261 0 # 1 1.414214 1.336306 4 # 2 -0.707107 -1.069045 0
假设您的
train_data
确实有索引A
(如果没有,那么它无论如何也不会工作)您正在错误地使用这些索引。如果要选择多个列,则需要使用双括号语法(否则列名列表将被视为单独的参数)
下面是一个简单的例子
data.csv
app.py
相关问题 更多 >
编程相关推荐