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

如何格式化含子列的Kaggle数据集以适配ML回归模型?

处理带多级表头的Kaggle数据集(适配回归模型)

你的问题核心是数据集存在多级表头(子列结构),加上文件带BOM编码导致直接读取后出现大量Unnamed列名。以下是分步解决方法:

1. 正确读取带多级表头的数据集

首先解决编码问题(开头的是UTF-8 BOM标记),同时指定读取前两行作为多级表头:

import pandas as pd

# 用utf-8-sig处理BOM,header=[0,1]读取前两行作为多级表头
data = pd.read_csv('Residential-Building-Data-Set.csv', encoding='utf-8-sig', header=[0, 1])

2. 整理多级表头为单级列名

多级表头不利于后续ML处理,我们可以把主列和子列合并成有意义的单级列名,同时过滤空值:

# 合并多级表头,处理空的子列名
data.columns = ['_'.join(col).strip().replace('Unnamed: ', '') for col in data.columns.values]
# 进一步清理:如果合并后列名只剩主列(子列为空),则保留主列名
data.columns = [col.split('_')[0] if col.endswith('_') else col for col in data.columns]

3. 清理无效列

删除全为空值的列(这些就是之前的Unnamed空列):

# 删除所有值都是NaN的列
data = data.dropna(axis=1, how='all')

4. 验证与后续处理

查看处理后的列名和数据:

print(data.columns)
print(data.head())

之后就可以按照回归模型的需求,继续做缺失值填充、特征编码、划分训练测试集等常规ML预处理步骤。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 20:41:08