You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Pandas读取分号分隔文件并归一化数据:解决删除目标变量quality时的KeyError问题

解决Pandas读取分号分隔CSV及数据归一化问题

先帮你拆解下当前遇到的核心问题,再一步步给出正确的操作流程:

一、KeyError错误的直接原因

你触发KeyError: ['quality'] not found in axis主要有两个问题:

  1. 分隔符使用错误:你用了delimiter="\s"(空白符分隔),但实际是分号分隔的CSV,导致读取后列名混乱,甚至没有quality这个列;
  2. drop的axis参数错误:axis=0是按行删除,你要删除的是quality列,应该用axis=1(或axis='columns')。

二、正确读取分号分隔的CSV文件

用Pandas读取分号分隔的文件,直接指定sep=";"或delimiter=";"即可,示例代码:

import pandas as pd

# 正确读取分号分隔的CSV
df = pd.read_csv('gdrive/My Drive/whitewine.csv', sep=";")

# 可选:确认列是否正确读取,用于排查问题
print(df.columns)

执行完print(df.columns)后,你应该能看到包含quality的列名列表,说明文件读取无误。

三、正确分离特征与目标变量

现在可以安全地删除quality列作为特征集,同时提取目标变量:

# 分离特征(X)和目标变量(y)
X = df.drop(['quality'], axis=1).values  # axis=1表示删除列
y = df['quality'].values

四、数据归一化操作

常用的归一化方法有两种,可根据数据特点选择:

方法1:Min-Max归一化(缩放到[0,1]区间)

适合数据分布相对均匀、没有明显异常值的场景:

from sklearn.preprocessing import MinMaxScaler

scaler = MinMaxScaler()
X_normalized = scaler.fit_transform(X)

方法2:标准化(Z-score归一化)

适合数据存在异常值、需要消除量纲影响的场景:

from sklearn.preprocessing import StandardScaler

scaler = StandardScaler()
X_standardized = scaler.fit_transform(X)

完整示例代码

把所有步骤整合起来:

import pandas as pd
from sklearn.preprocessing import MinMaxScaler

# 1. 读取分号分隔的CSV
df = pd.read_csv('gdrive/My Drive/whitewine.csv', sep=";")

# 2. 分离特征与目标变量
X = df.drop(['quality'], axis=1).values
y = df['quality'].values

# 3. 执行Min-Max归一化
scaler = MinMaxScaler()
X_normalized = scaler.fit_transform(X)

# 可选:查看归一化后的前5行数据
print(X_normalized[:5])

内容的提问来源于stack exchange,提问作者Caroline

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.30 17:42:40