4、数据导入与初步查看:使用MBP内置工具导入数据、数据预览、基本信息统计
数据导入是测量数据预处理流程的起点。MBP建模平台提供了统一的数据接入层,支持多种文件格式与数据源类型。本章节将系统讲解如何使用MBP内置工具完成数据导入、预览及基本信息统计,帮助您快速掌握数据集的整体状况。
4.1 支持的数据源与导入方式
MBP平台的数据导入模块支持以下主流数据源类型:
| 数据源类型 | 支持格式 | 典型场景 |
|---|---|---|
| 本地文件 | .csv, .xlsx, .xls, .txt, .json, .parquet | 单机测量数据、实验记录表 |
| 数据库连接 | MySQL, PostgreSQL, SQLite, Oracle | 产线实时测量数据库 |
| 工业协议 | OPC UA, Modbus TCP, MQTT | 传感器实时数据流 |
| 云存储 | MinIO, AWS S3, 阿里云OSS | 分布式测量数据归档 |
推荐做法:对于初次接触MBP的用户,建议优先使用本地CSV文件进行练习。CSV格式通用性强、兼容性好,且MBP对其有最完善的自动类型推断支持。
4.2 数据导入操作流程
使用MBP内置导入工具的标准操作步骤如下:
- 启动导入向导:在MBP主界面点击“数据导入”按钮,或通过菜单栏
文件 → 导入数据进入。 - 选择数据源:在向导第一步选择数据源类型(本地文件/数据库/工业协议/云存储)。
- 配置连接参数:根据数据源类型填写文件路径、数据库连接串、协议端点等必要信息。
- 设置导入选项:指定编码格式(推荐UTF-8)、分隔符(CSV默认为逗号)、表头行(默认第一行)、空值处理策略。
- 执行导入:点击“导入”按钮,MBP将自动读取数据并加载到内存工作区。
- 确认导入结果:导入完成后,系统会显示成功导入的行数与列数,以及可能存在的警告信息。
关键参数说明:在导入CSV文件时,MBP会自动检测分隔符与编码格式。若自动检测失败,请手动指定。常见分隔符包括逗号(,)、制表符(\t)、分号(;)。编码格式优先选择UTF-8,若出现乱码可尝试GBK或ISO-8859-1。
4.3 数据预览功能
数据导入成功后,MBP会自动打开数据预览面板。预览功能帮助您在正式分析前快速了解数据的基本形态。
预览面板提供以下核心视图:
- 表格视图:以行列形式展示前100行数据,支持横向滚动查看所有列。
- 列信息栏:显示每列的名称、数据类型(自动推断)、非空值数量、唯一值数量。
- 快速统计行:在表格底部显示数值型列的最小值、最大值、均值、标准差。
- 缺失值标记:空值单元格以浅红色背景高亮显示,便于快速定位缺失位置。
注意:预览仅展示数据子集(默认前100行),不代表全量数据的完整分布。对于大型数据集,建议在完成基本信息统计后再做全局判断。
4.4 基本信息统计
MBP的“基本信息统计”功能提供数据集的全局概览,是数据质量评估的第一步。统计结果以结构化报告形式呈现,包含以下维度:
| 统计维度 | 指标项 | 说明 |
|---|---|---|
| 规模信息 | 总行数、总列数、内存占用 | 评估数据量级与资源需求 |
| 列类型分布 | 数值型、类别型、文本型、日期型、布尔型 | 了解数据构成类型 |
| 缺失值统计 | 每列缺失数量、缺失率、缺失模式 | 识别数据完整性问题 |
| 重复值统计 | 完全重复行数、关键列重复数 | 发现数据冗余情况 |
| 数值分布 | 均值、中位数、标准差、四分位数、偏度、峰度 | 评估数值列分布特征 |
| 类别频次 | 类别值列表、频次、占比 | 了解类别列分布均衡性 |
4.5 数据导入与统计流程总览
下图展示了从数据源接入到完成基本信息统计的完整流程:
4.6 使用代码进行数据导入与统计
MBP平台内置Python脚本引擎,支持通过代码方式完成数据导入与统计。以下为典型操作示例:
# 导入MBP数据模块
from mbp.data import DataLoader, DataProfile
# 1. 数据导入
loader = DataLoader()
df = loader.from_csv(
file_path="measurement_data.csv",
encoding="utf-8",
delimiter=",",
header=0,
na_values=["", "NA", "null", "NULL"]
)
# 2. 数据预览
print("数据预览(前5行):")
print(df.head())
print(f"\n数据集规模:{df.shape[0]} 行 × {df.shape[1]} 列")
# 3. 基本信息统计
profile = DataProfile(df)
report = profile.generate_report()
# 输出关键统计指标
print("\n=== 基本信息统计报告 ===")
print(f"总行数:{report['row_count']}")
print(f"总列数:{report['col_count']}")
print(f"缺失值总数:{report['missing_total']}")
print(f"缺失率:{report['missing_rate']:.2%}")
print(f"重复行数:{report['duplicate_rows']}")
# 逐列统计
for col in report['columns']:
print(f"\n列名:{col['name']} | 类型:{col['dtype']}")
print(f" 非空值:{col['non_null']} | 缺失值:{col['null_count']}")
if col['dtype'] in ['float64', 'int64']:
print(f" 均值:{col['mean']:.3f} | 标准差:{col['std']:.3f}")
print(f" 最小值:{col['min']} | 最大值:{col['max']}")
效率提示:对于大型数据集(超过100万行),建议在导入时使用
chunksize 参数分块读取,避免内存溢出。MBP的 DataLoader 支持自动分块与进度条显示。
4.7 常见问题与处理建议
| 问题现象 | 可能原因 | 解决方案 |
|---|---|---|
| 导入后数据全为NaN | 分隔符设置错误或编码不匹配 | 检查文件实际分隔符,尝试UTF-8/GBK编码 |
| 数值列被识别为文本 | 列中存在非数值字符(如逗号、单位符号) | 在导入前清理数据,或使用 pd.to_numeric() 强制转换 |
| 日期列解析失败 | 日期格式不统一或包含无效日期 | 指定 parse_dates 参数,或使用 date_format 明确格式 |
| 内存不足无法导入 | 数据集过大超出可用内存 | 使用分块导入、指定所需列、或使用 dtype 压缩数据类型 |
| 统计报告显示缺失率异常高 | 空值标记不统一(如"NULL"、"N/A"、"?") | 在导入时通过 na_values 参数统一指定空值标记 |
重要提醒:数据导入与初步查看阶段发现的任何异常,都应在后续预处理步骤中予以处理。切勿跳过此环节直接进入建模,否则可能导致模型训练失败或结果偏差。
完成数据导入与初步查看后,您已经掌握了数据集的整体状况,包括数据规模、列类型分布、缺失情况与基本统计特征。这些信息将为后续的数据清洗、特征工程与建模提供重要依据。