7-1自媒体运营分析 - 数据清洗与预处理
一、实验背景
1.1 实验目的
这次实验的核心任务,是借助助睿 ETL 工具,完成自媒体多平台原始数据的清洗与预处理。这是进入特征工程和可视化建模之前的必经环节。
通过实际操作,我希望掌握以下几项关键能力:
第一,理解数据清洗在整个数据分析与机器学习流程中的前置地位,明白脏数据会对后续建模和统计计算产生什么样的实际干扰;
第二,熟练运用助睿 ETL 的拖拽式组件,完成多条件过滤、空值填充、分组聚合、字段筛选等标准化的数据预处理操作;
第三,掌握 ETL 流程中的分支分流设计思路,区分两类不同的数据处理逻辑——一类用于全平台的大盘统计,另一类用于重点平台的深度明细分析。
最终,这套流程将产出两张标准化的数据表:一张供仪表盘的指标卡使用,另一张交给下一阶段的特征工程。
1.2 实验环境
平台全称:助睿数智(Uniplore)一站式数据科学实验平台
官网地址:https://www.uniplore.com/
实验访问地址:https://lab.guilian.cn/
核心处理工具:助睿 ETL(UD Studio,数据集成模块)
工具核心特性
零代码可视化 Pipeline,无需编写 SQL、Python 即可完成 ETL 全流程;
内置 200 + 数据转换组件,覆盖清洗、聚合、关联、文本处理等场景;
元数据统一管理,数据表跨实验可复用,适配完整数据链路;
流批一体引擎,支持 CSV、数据库等多类数据源接入。
实验数据集 数据源文件:自媒体作品数据明细.csv 数据范围:6 月 8 日 - 6 月 15 日全班学生在 B 站、CSDN、微信、知乎、小红书发布的作品互动明细; 数据缺陷:多平台无效记录、文本字段空值、冗余采集字段、分平台差异化互动指标。
1.3 核心设计思路
1.3.1 数据清洗的必要性
原始采集数据存在三类脏数据,直接用于分析、机器学习会引发统计失真、代码报错:
平台冗余脏数据:微信、知乎、小红书绝大部分浏览量为 0,无有效分析价值,保留会稀释流量数据;
无效业务记录:部分作品浏览、点赞、收藏全部为 0,属于失效采集或零曝光内容,不适合深度分析;
缺失字段:标题、作者名称存在空值,后续文本特征提取、分组统计会出现空值报错。 数据清洗核心目标:剔除无效数据、补齐缺失内容、规范字段结构,拆分两套数据分别适配不同分析场景。
1.3.2 整体数据处理流程
ETL 流程设计:从原始数据到两张目标表
为了兼顾“宏观总览”和“微观分析”两类需求,我把数据清洗链路设计为双分支并行结构。
所有原始 CSV 数据统一导入后,通过「复制记录」组件将数据流一分为二,分别进入两条独立的处理管线:
管线一:全平台汇总
这条线走的是“聚合”逻辑。数据经过排序和分组聚合运算后,输出一张全平台总表。这张表不保留明细,只沉淀各维度的汇总统计值,后续直接对接仪表盘的指标卡,用于展示大盘关键数据。
管线二:重点平台明细
这条线走的是“清洗”逻辑。数据依次经过多条件筛选(去除非目标平台的记录)、缺失值填充(保证字段完整)、字段精简(只保留后续分析需要的核心字段)三道工序后,输出一张清洗后的明细宽表。这张表保留完整的数据粒度,作为特征工程和可视化分析的底层输入。
两张表各司其职:汇总表追求“快”,服务 dashboard;明细表追求“全”,服务建模与分析。
二、实验步骤(含操作说明、配置要点、截图说明)
步骤 1:创建两张目标数据表
操作说明:进入助睿 ETL 表管理模块,分别新建两张结构化数据表,提前定义字段名称、数据类 型与业务含义,为后续表输出做准备。
表 1:summary_all_platforms(全平台汇总表)
字段名 | 数据类型 | 配置说明 |
crawl_date | DATE | 数据采集日期,保留时间维度用于趋势统计 |
platform | VARCHAR(20) | 发布平台名称(B 站 / CSDN / 微信 / 知乎 / 小红书) |
content_count | INT | 当日该平台发布作品总条数 |
total_views | INT | 平台全部作品总浏览量 |
total_likes | INT | 平台总点赞数量 |
total_favorites | INT | 平台总收藏数量 |
total_shares | INT | 平台总分享数量 |
total_coins | INT | B 站专属投币量,其他平台自动聚合为 0 |
total_recommend | INT | 微信专属推荐指标 |
total_likes_zhihu | INT | 知乎专属喜欢指标 |
total_approvals | INT | 知乎专属赞同指标 |
配置要点:不做任何数据过滤,完整保留全部平台数据;各平台独有互动指标独立建列,不合并求和,保证各平台业务指标可区分。
DROP TABLE IF EXISTS summary_all_platforms; CREATE TABLE IF NOT EXISTS summary_all_platforms ( id INT AUTO_INCREMENT PRIMARY KEY COMMENT '自增主键ID', crawl_date DATE NOT NULL COMMENT '采集日期', platform VARCHAR(20) NOT NULL COMMENT '平台名称', content_count INT COMMENT '作品数量', total_views INT COMMENT '总浏览数', total_likes INT COMMENT '总点赞数', total_favorites INT COMMENT '总收藏数', total_shares INT COMMENT '总分享数', total_coins INT COMMENT '总投币数(仅B站)', total_recommend INT COMMENT '总推荐数(仅微信)', total_likes_zhihu INT COMMENT '总喜欢数(仅知乎)', total_approvals INT COMMENT '总赞同数(仅知乎)' ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT = '全平台概况汇总表';表 2:content_analysis(重点平台清洗明细表)
字段名 | 数据类型 | 配置说明 |
date | DATE | 采集日期 |
author_name | VARCHAR(100) | 作品作者昵称 |
title | VARCHAR(500) | 作品标题 |
platform | VARCHAR(20) | 仅存储 B 站、CSDN |
likes/favorites/shares/coins | INT | 基础互动指标 |
views | INT | 播放 / 阅读量 |
url | VARCHAR(500) | 作品外链 |
total_interaction | INT | 预留字段,下一实验计算总互动 |
has_best/has_lowcode/has_practice/has_tutorial/has_pit | TINYINT(1) | 预留标题关键词 0-1 特征字段 |
配置要点:预留衍生特征字段,无需在本次实验填充,为实验 7-2 特征工程预留存储空间。 截图说明:截图保存数据表结构配置界面,留存字段类型、长度设置页面。
DROP TABLE IF EXISTS content_analysis; CREATE TABLE IF NOT EXISTS content_analysis ( id INT AUTO_INCREMENT PRIMARY KEY COMMENT '自增主键ID', date DATE NOT NULL COMMENT '采集日期', author_name VARCHAR(100) COMMENT '作者昵称', title VARCHAR(500) NOT NULL COMMENT '作品标题', platform VARCHAR(20) NOT NULL COMMENT 'B站 / CSDN', likes INT COMMENT '点赞数', favorites INT COMMENT '收藏数', shares INT COMMENT '分享数', coins INT COMMENT '投币数(仅B站)', views INT COMMENT '播放量/阅读量', url VARCHAR(500) COMMENT '作品链接', total_interaction INT COMMENT '互动总数', has_best TINYINT(1) COMMENT '是否含“保姆级” 0否1是', has_lowcode TINYINT(1) COMMENT '是否含“零代码” 0否1是', has_practice TINYINT(1) COMMENT '是否含“实战” 0否1是', has_tutorial TINYINT(1) COMMENT '是否含“教程/指南” 0否1是', has_pit TINYINT(1) COMMENT '是否含“踩坑” 0否1是' )ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT = '内容分析明细表(实验二输入,仅B站、CSDN有效数据)';
步骤 2:导入原始 CSV 数据源
操作说明:从平台公共资源库拷贝原始数据至个人文件库,通过「文件输入」组件加载 CSV 作为整个 Pipeline 的数据源。
1.在 ETL 公共空间找到自媒体作品数据明细.csv,右键复制至个人私有文件库;
2.拖拽「文件输入」组件至画布,文件路径选择个人库内目标文件;
3.点击「数据探查」预览原始数据,记录空标题、零浏览、多平台混杂等脏数据现象。
配置要点:文件编码设置为 UTF-8,开启自动识别表头,数值字段统一识别为整数类型。
截图说明:原始数据预览探查截图,记录脏数据样本。
步骤 3:分支 1—— 全平台聚合统计
操作说明:使用「复制记录」将原始数据流一分为二,第一条分支完成全平台分组聚合,输出大盘汇总表。
1.拖拽「执行一个sql脚本」组件,将输入数据分流为两条独立线;
2.第一条线依次添加「排序记录」、「分组聚合」组件;
3.排序组件的配置:按crawl_date、platform升序排序;
4.分组聚合配置:分组字段为crawl_date、platform,聚合规则:
计数指标:针对content_count字段,统计分组内的记录条数;
求和指标:剔除作者、URL、来源文件名和标题这4个字段后,对其余所有数值字段进行求和汇总。
5.管线末端添加「表输出」组件,绑定目标表summary_all_platforms,不开启运行前裁剪表。 配置要点:聚合时保留平台专属指标,不做跨平台指标合并。 截图说明:聚合组件参数配置截图、分支完整管线截图。
步骤 4:分支 2—— 多条件过滤无效记录
操作说明:第二条清洗分支接入「过滤记录」组件,剔除无分析价值平台与零曝光作品。 过滤逻辑表达式:
(platform = 'B站' AND views > 0) OR (platform = 'CSDN' AND views > 0)
配置要点:
1.条件区分字符串匹配(平台名称)与数值判断(浏览量);
2.AND、OR 嵌套实现双重筛选:仅保留 B 站 / CSDN,同时剔除浏览量为 0 的作品;
3.为验证过滤条件的有效性,我在流程执行后对输出数据进行了抽样检查。核验重点覆盖两个维度:一是确认非目标平台(微信、知乎、小红书)的记录已被完全剔除,二是确认 views 字段为零的无效数据已被清洗。经抽样查看,过滤结果符合预期。
步骤 5:缺失值填充处理
操作说明:过滤完成后接入「空值替换」组件,补齐作者、标题空文本,避免后续文本处理报错。
1.待填充字段:author_name、title;
2.填充规则:空值统一替换文本未知;
3.数值互动字段无空值,无需配置填充规则。 配置要点:区分文本空值、数值空值两套处理逻辑,不统一填充数字。 截图说明:空值替换组件配置界面截图。
步骤 6:字段选择精简
操作说明:使用「字段选择」剔除采集冗余字段,仅保留业务分析所需字段。
剔除字段:source_file(采集批次标记,无分析意义)
保留字段:date, author_name, title, platform, likes, favorites, shares, coins, views, url
配置要点:勾选「移除未选中字段」,减少数据表冗余存储,提升后续计算效率。
步骤 7:输出清洗明细表
操作说明:字段筛选后接入「表输出」组件,将清洗完成明细写入content_analysis。 配置要点:勾选「运行前清空表」,保证每次实验产出干净无重复的明细数据。
步骤 8:完整转换流执行与数据验证
操作说明:检查两条分支组件连线、字段映射无报错,点击画布顶部「运行」执行整条 ETL 流水线。
1.运行结束后分别打开两张目标表执行数据探查;
2.验证标准:
1)summary_all_platforms:包含 5 个平台所有日期汇总数据;
2)content_analysis:仅存在 B 站、CSDN 有效作品,无标题 / 作者空值,无冗余字段。
截图说明:完整 Pipeline 流程图、两张数据表最终探查结果截图。
三、实验结果
1. 产出数据表 1:summary_all_platforms 存储 6.8-6.15 全平台按日期聚合汇总数据,完整记录各平台作品总量、总浏览、分平台特色互动指标,共包含 5 个平台统计记录,可直接用于仪表盘顶部大盘指标卡。
2. 产出数据表 2:content_analysis 完成脏数据剔除、空值补齐、字段精简后的有效作品明细,仅保留 B 站、CSDN 浏览量大于 0 的内容,无缺失文本,字段结构规范,作为实验 7-2 特征工程的基础输入数据源。
3. 数据对比验证:原始 CSV 约 1900 条原始记录,经过滤清洗后有效明细数据约 1200 条,剔除全部无业务分析价值的脏数据,数据质量满足后续统计、文本特征提取需求。
四、问题与解决
问题 1:过滤组件执行后仍存在浏览量 = 0 的记录
问题现象:配置完多条件过滤,数据预览依旧出现 views=0 的 B 站、CSDN 作品;
问题原因:原始 CSV 中 views 字段被识别为字符串类型,数值大小判断逻辑失效;
解决方法:在过滤组件前新增「类型转换」组件,将 views 统一转换为 INT 整数类型,重新运行过滤流程。
问题 2:空值填充完成后,标题、作者仍存在空白数据
问题现象:配置文本空值替换为 “未知”,探查数据依旧存在空单元格;
问题原因:原始数据空白为空格字符串,并非数据库标准 NULL 空值;
解决方法:在空值替换前增加「字符串修剪」组件,清除字段前后空格,再执行空值填充。
问题 3:分组聚合后平台专属指标全部显示 0
问题现象:summary_all_platforms 表中 B 站投币、知乎赞同数值均为 0,和原始数据不符;
问题原因:分组聚合时字段映射错误,未匹配对应平台互动字段;
解决方法:重新核对聚合组件字段映射关系,分平台指标单独配置求和规则。
五、实验总结
5.1 实验收获
本次实验重点掌握以下四方面内容:
- 理解数据清洗的业务逻辑。 能够自主识别三类典型脏数据——平台冗余记录、无效数据、字段缺失——并理解它们对后续特征工程、可视化呈现和建模效果的负面影响。
- 熟练使用助睿 ETL 的核心预处理组件。 掌握多条件 AND/OR 联合过滤、文本空值填充、分组聚合和字段精简等操作的零代码配置方法。
- 掌握 ETL 流程的分支分流设计思路。 能够根据数据用途区分大盘汇总与明细分析两种加工路径,理解宽表设计思想,实现“一次清洗、多处复用”的数据交付目标。
- 建立标准化的数据处理意识。 按“先规划表结构 → 再导入数据 → 分流加工 → 最后校验”的顺序推进工作,贴合企业真实数据分析流程。
5.2 平台整体评价
助睿数智 Uniplore 一站式平台完整覆盖了从 ETL 数据清洗、特征建模到可视化呈现的整套分析链路。通过零代码拖拽式的交互方式,显著降低了数据分析的入门门槛——即便不掌握编程语言或 SQL,也能完成专业水准的数据预处理工作。
平台内置了丰富的数据转换组件,同时支持自定义配置,能够灵活适配不同业务场景下的差异化指标需求。数据表可在跨实验任务中复用,有效串联起数据清洗、特征工程、可视化展示的完整实训流程,非常适合商业数据分析及大数据基础课程的实操教学。
此外,平台具备标准化的元数据管理能力,可视化的 Pipeline 流程结构清晰,每一步操作都有迹可循,便于实验复盘与问题排查。
