KeyError: "[''] not in index" while normalizing multiple specific columns, using StandardScaler()

KeyError: "[''] not in index" while normalizing multiple specific columns, using StandardScaler()

尝试仅规范化特定的数字列,使用 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 列是 float64。

当前方向

假设您的 train_data 确实有索引 A(如果没有,则无论如何都无法使用)。

您没有正确使用这些索引。如果你想 select 多列,你需要使用双括号语法(否则你的列名列表将被视为单独的参数)

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