实验7-1 自媒体运营分析——数据清洗与预处理实验报告
一、实验目的
本次实验依托全体学生多平台自媒体作品互动数据集,借助助睿ETL工具完成整套数据清洗与预处理操作,生成两份标准业务数据表,为后续特征工程、可视化分析提供规范数据源。
完成实验后需掌握以下核心能力:
1. 明晰数据清洗在数据分析全流程中的基础作用与实施必要性;
2. 熟练运用助睿ETL完成多源异构数据的筛选、空值填充、分组聚合等预处理操作;
3. 掌握ETL分支分流处理思想:分别实现全平台整体指标统计、优质平台精细化分析两条数据处理链路;
4. 产出两张符合规范的数据表,分别适配可视化大屏不同功能模块的数据调用需求。
二、实验环境
1. 实验操作平台:助睿在线实训平台,访问地址:https://lab.guilian.cn/
2. 数据科学综合工具:Uniplore助睿数智(官网:https://www.uniplore.com//),平台覆盖数据接入、ETL转换、机器学习建模、BI可视化全链路零代码操作,适配课堂数据分析实训与企业常规数据加工场景。
3. 核心处理组件:助睿ETL数据集成工具
助睿ETL核心功能特点:
- 元数据全驱动架构:读取、转换、写入全环节统一标准化元数据管理;
- 可视化拖拽式零代码开发:可视化搭建ETL抽取、转换、加载流程,无需手写代码;
- 内置丰富预处理算子:筛选、缺失值填充、分组聚合、表连接、字段裁剪等组件齐全,覆盖绝大多数数据清洗场景;
- Pipeline转换流机制:将多个数据转换节点组合为完整处理流水线,专注数据加工逻辑;
- 开源底层高可用引擎:插件化扩展架构,可按需拓展数据处理能力。
三、核心设计思路
3.1 开展数据清洗的必要性
直接采集获取的原始自媒体数据集存在大量脏数据,无法直接开展统计分析,以本次数据源「自媒体作品数据明细.csv」为例,现存三类典型数据问题:
1. 平台数据冗余:数据集涵盖B站、CSDN、微信、知乎、小红书等平台,但微信、知乎等平台浏览量字段绝大多数数值为0,缺少有效流量数据,无分析价值;
2. 无效冗余数据:部分作品浏览、点赞、收藏三项指标全部为0,属于采集失败或零曝光无效内容,干扰整体分析结果;
3. 字段空值问题:点赞、收藏、转发等互动字段存在空值,若不预处理,后续数值计算、统计运算会直接报错。
数据清洗的核心工作即针对性解决以上脏数据问题,标准化数据集格式。
3.2 整体数据处理流程
本次实验数据处理采用分支分流设计,原因是后端可视化仪表盘需要两类口径完全不同的统计数据:
1. 全平台整体统计数据:统计全体学生发布作品总量、覆盖平台数量、全站总浏览与总互动量。统计口径包含全部原始平台数据,浏览量为0的作品也需计入作品总数;
2. 重点平台深度分析数据:仅针对B站、CSDN两大有效平台开展深度拆解,分析播放量、阅读量、互动转化效果,仅保留浏览量大于0的有效作品记录。
两套数据处理链路并行执行,分别生成两张业务表:
- summary_all_platforms:专供仪表盘顶部指标卡片展示全平台汇总数据;
- cleaned_details:作为中间数据表,承接下一阶段实验的数据加工需求。
四、实验操作步骤
步骤1:新建两张业务目标数据表
连接数据库
在助睿ETL平台内创建两张用途区分的存储表,分别存储全平台汇总数据与有效作品明细数据。
1. 表1:summary_all_platforms(全平台汇总统计表)
本表不做任何数据过滤,完整保留所有平台原始统计数据;各平台专属互动指标独立设置字段,不做合并求和,区分不同平台互动行为定义。
| 字段名 | 数据类型 | 字段说明 |
| ---- | ---- | ---- |
| crawl_date | DATE | 数据采集日期 |
| platform | VARCHAR(20) | 自媒体平台名称 |
| content_count | INT | 平台下作品总条数 |
| total_views | INT | 平台全部作品总浏览量 |
| total_likes | INT | 平台全部作品总点赞量 |
| total_favorites | INT | 平台全部作品总收藏量 |
| total_shares | INT | 平台全部作品总转发量 |
| total_coins | INT | B站专属总投币数 |
| total_recommend | INT | 微信专属总推荐量 |
| total_likes_zhihu | INT | 知乎专属总喜欢数 |
| total_approvals | INT | 知乎专属总赞同数 |
2. 表2:content_analysis(有效作品分析明细表)
作为下一实验的基础输入表,仅留存B站、CSDN有浏览量的有效作品,预留后续文本特征衍生字段。
| 字段名 | 数据类型 | 字段说明 |
| ---- | ---- | ---- |
| date | DATE | 采集日期 |
| author_name | VARCHAR(100) | 创作者昵称 |
| title | VARCHAR(500) | 自媒体作品标题 |
| platform | VARCHAR(20) | 平台名称,仅B站/CSDN |
| likes | INT | 点赞数量 |
| favorites | INT | 收藏数量 |
| shares | INT | 转发数量 |
| coins | INT | B站投币数,其他平台为0 |
| views | INT | 播放/阅读浏览量 |
| url | VARCHAR(500) | 作品原始链接 |
| total_interaction | INT | 作品总互动量(下一实验计算) |
| has_best | TINYINT(1) | 标题是否含“保姆级”(下一实验生成) |
| has_lowcode | TINYINT(1) | 标题是否含“零代码”(下一实验生成) |
| has_practice | TINYINT(1) | 标题是否含“实战”(下一实验生成) |
| has_tutorial | TINYINT(1) | 标题是否含“教程/指南”(下一实验生成) |
| has_pit | TINYINT(1) | 标题是否含“踩坑”(下一实验生成) |
拖入执行一个sql组件并运行
-- 1. 全平台概况表 summary_all_platforms
DROP TABLE IF EXISTS summary_all_platforms;
CREATE TABLE IF NOT EXISTS summary_all_platforms (
crawl_date DATE COMMENT '采集日期',
platform VARCHAR(20) 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
DROP TABLE IF EXISTS content_analysis;
CREATE TABLE IF NOT EXISTS content_analysis (
date DATE COMMENT '采集日期',
author_name VARCHAR(100) COMMENT '作者昵称',
title VARCHAR(500) COMMENT '作品标题',
platform VARCHAR(20) 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 '是否含“保姆级”',
has_lowcode TINYINT(1) COMMENT '是否含“零代码”',
has_practice TINYINT(1) COMMENT '是否含“实战”',
has_tutorial TINYINT(1) COMMENT '是否含“教程/指南”',
has_pit TINYINT(1) COMMENT '是否含“踩坑”'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='B站&CSDN有效作品清洗明细表';
步骤2:导入原始CSV数据源
数据源文件「自媒体作品数据明细.csv」存放于助睿ETL公共资源空间,记录6月8日至6月15日学生提交自媒体作品互动数据;数据集仅包含采集节点前未删除的作品,新增、中途删除作品不在数据集范围内。
操作流程:将公共空间文件复制至个人文件库,作为ETL转换流的输入数据源接入平台。
步骤3:分支一——全平台数据分组聚合统计
搭建第一条数据处理分支,用于生成全平台汇总表:
先输入文件
拖拽「排序记录」、「分组聚合」组件,按照采集日期、平台两个维度分组,
全部数值型互动指标执行求和运算,处理完成后输出至summary_all_platforms汇总表。
步骤4:分支二——多条件过滤无效数据
第二条处理分支针对明细数据清洗,使用「过滤记录」组件完成双层筛选,筛选逻辑采用AND、OR多条件组合:
筛选规则:
(平台 = 'B站' AND 浏览数量 > 0) OR (平台 = 'CSDN' AND 浏览数量 > 0)
两层筛选逻辑说明:
1. 限定平台范围:仅保留B站、CSDN,剔除微信、知乎、小红书等无有效流量平台;
2. 剔除零曝光作品:筛选两个平台内浏览量大于0的有效内容。
单组件即可完成复合条件筛选,平台支持自定义复杂表达式组合多类筛选规则。
步骤5:缺失值统一填充处理
数据集数值类互动字段无空值,但作者昵称、作品标题文本字段存在空记录;使用「空值填充」组件,将文本空值统一替换为“未知”,规避后续文本匹配、统计运算报错问题。
步骤6:字段裁剪筛选
原始数据中source_file字段为采集批次标记,无分析意义,使用「字段选择」组件剔除冗余字段,仅保留业务所需字段:
date, author_name, title, platform, likes, favorites, shares, coins, views, url
步骤7:写入明细目标数据表
经过滤、空值填充、字段裁剪后的干净明细数据,写入content_analysis分析明细表,作为实验7-2的基础数据源。
步骤8:运行完整ETL转换流水线
将两条数据处理分支完整搭建为Pipeline转换流,点击执行按钮运行全流程;运行完成后可通过数据探查功能校验两张输出表的数据质量与统计结果。
、
五、实验核心知识点总结
1. 复合条件数据过滤:借助AND、OR逻辑运算符,在单个过滤组件中同时完成平台范围限定、有效流量筛选双重条件判断;
2. 缺失值标准化处理:文本类空值统一填充固定默认值,保证下游数据分析、计算流程稳定无异常;
3. 时间维度数据保留:完整保留采集日期字段,不做数据去重,为后续时间趋势分析预留维度;
4. ETL流水线Pipeline设计:多个功能独立的转换组件串联、并行组合,搭建一体化数据清洗处理流程;
5. 宽表分层设计思想:单次数据清洗产出两类口径数据表,一张原始汇总表、一张清洗明细表,支撑全部后续可视化、特征分析需求,实现一次加工多次复用。