实验七:自媒体运营分析-数据清洗与预处理
一、实验背景
1实验目的
本实验基于全班同学在多平台发布的作品互动数据,使用助睿ETL完成数据清洗与预处理,输出两张核心数据表,为后续特征工程与可视化分析奠定基础。
通过本实验,学生应掌握:
理解数据清洗在数据分析流程中的基础性与必要性
使用助睿ETL完成多源数据的过滤、填充、聚合等预处理操作
掌握“分支处理”的设计思路:全平台概况统计与重点平台深度分析分流
输出两张规范数据表,支撑仪表盘不同模块的数据需求
2实验环境
实验平台:助睿在线实验平台https://lab.guilian.cn/
本次实验使用助睿数智(Uniplore) 作为一站式数据科学平台。该平台覆盖从数据接入、ETL处理、机器学习建模到可视化展示的全链路零代码功能,适用于数据分析教学与企业数据加工场景。
助睿数智官网为https://www.uniplore.com//
数据处理工具:助睿ETL(数据集成平台)
助睿ETL核心优势:
全元数据驱动架构:平台内所有对象类型均通过元数据标准化定义,覆盖数据读取、处理、写入的全流程
零代码拖拽式操作:通过可视化方式完成数据的抽取(Extract)、转换(Transform)、加载(Load),无需编写复杂代码
丰富的预处理组件:内置筛选、填充、聚合、连接、字段选择等多种转换节点,灵活应对各类数据清洗场景
Pipeline(转换)机制:面向数据流通处理的核心功能单元,由多个不同功能的Transform步骤组合构成,聚焦数据本身的加工转换操作
开源内核高可用引擎:基于开源内核的高可用引擎架构,通过标准化插件体系可灵活扩展引擎能力
3核心设计思路
3.1为什么需要数据清洗?
采集到的原始数据往往不能直接用于分析,需要先做清洗。
观察自媒体作品数据明细.csv 这份数据,可以发现几个问题:
平台冗余:数据包含了B站、CSDN、微信、知乎、小红书等多个平台,但微信、知乎等平台的浏览数量几乎全是0。这些平台虽然有作品记录,但缺乏核心的浏览数据,无法支撑有意义的分析。
无效记录:部分作品的浏览数量、点赞数量、收藏数量全部为0。这些记录可能是采集失败,也可能是作品确实无人问津,但无论如何,它们对分析没有贡献。
字段缺失:点赞、收藏、分享等字段中存在空值,如果不处理,后续计算会报错。
数据清洗要做的,就是把这些问题逐一解决。
3.2数据处理流程
本次实验有一个特殊之处:后续可视化仪表盘需要同时展示两类信息。
第一类是“全平台概况”——全班总共发了多少内容?覆盖了几个平台?总浏览和总互动是多少?这些数字需要基于所有平台的原始数据来统计,哪怕浏览数为0也要计入作品数。
第二类是“重点平台深度分析”——B站和CSDN的具体表现如何?播放量、阅读量、互动率是多少?这些分析只需要B站和CSDN的有效数据(浏览数大于0的记录)。
两类信息对数据的要求不同,所以在ETL中需要做分支处理:
两张表各司其职:summary_all_platforms 只用于仪表盘顶部的全平台概况指标卡;cleaned_details 作为中间结果,交给下一实验继续加工。
二、实验步骤
1 创建内容分析表
新建转换流”创建内容分析表“,下面是组件
组件配置:输入下面sql语句
DROP TABLE IF EXISTS `content_analysis`;
CREATE TABLE content_analysis (
`id` BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '自增主键ID',
`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 '是否含“保姆级”:1是,0否',
has_lowcode TINYINT(1) COMMENT '是否含“零代码”:1是,0否',
has_practice TINYINT(1) COMMENT '是否含“实战”:1是,0否',
has_tutorial TINYINT(1) COMMENT '是否含“教程/指南”:1是,0否',
has_pit TINYINT(1) COMMENT '是否含“踩坑”:1是,0否'
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT = '内容分析表(实验二输入表,仅保留B站、CSDN有效数据)';
最后执行转换流
2创建全平台概况表
新建转换流”创建全平台概况表“,下面是组件
组件配置:输入下面sql语句
DROP TABLE IF EXISTS `summary_all_platforms`;
CREATE TABLE summary_all_platforms (
`id` BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '自增主键ID',
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 = '全平台概况汇总表,存储各平台原始采集数据';
最后执行转换流
3 导出数据集
点击公共空间,然后点击数据资源
导出"自媒体作品数据明细.csv"
4 创建转换流“数据清洗与预处理"
新建转换流”数据清洗与预处理“,下面是组件
组件配置:
csv文件输入:导入"自媒体作品数据明细.csv",编码UTF-8,然后获取字段
排序记录:按crawl_data和platform排序
分组(全平台聚合统计):
表输出:
过滤记录:
空操作(什么也不做):无
替换NULL值:
字段选择:移除不要的字段
表输出1:
三、实验结果
全平台概况表
内容分析表
四、问题与解决
无
五、实验总结
这次实验我学会了如何把自媒体作品数据进行数据清洗与预处理
