为何Pandas判定数据框仅1列?Python回归课程数据读取异常
解决红酒数据集加载后列数为1的问题
嘿,我之前也踩过这个坑!这绝对不是文件的问题,而是你加载数据时没指定正确的分隔符导致的——这个红酒数据集用的是**分号;**来分隔列,而pandas的read_csv()默认用逗号,作为分隔符,所以所有列都被合并成一列了,行数1599是对的,因为每一行都被正确识别成了一条数据。
正确的加载方式
直接在read_csv里指定sep=';'参数就行:
import pandas as pd # 本地文件加载 rwq = pd.read_csv('winequality-red.csv', sep=';') # 或者直接从URL加载 rwq = pd.read_csv('http://archive.ics.uci.edu/ml/machine-learning-databases/wine-quality/winequality-red.csv', sep=';')
验证结果
运行下面的代码确认列数:
print(rwq.shape) # 输出 (1599, 12),符合预期 print(len(rwq.columns)) # 现在会返回12了
额外排查小技巧
如果不确定分隔符是什么,可以先读取几行原始内容确认:
# 查看前几行原始内容 with open('winequality-red.csv', 'r') as f: print(f.readlines()[:2])
你会看到第一行是类似fixed acidity;"volatile acidity";"citric acid";...这样的格式,明显是分号分隔的。
内容的提问来源于stack exchange,提问作者Randomdude
相关产品推荐
相关产品推荐

