欢迎光临
我们一直在努力

自媒体运营分析-数据清洗与预处理

1 实验目的

本实验以班级多平台自媒体作品互动数据集为处理对象,依托助睿ETL工具完成全流程数据清洗与标准化预处理,最终输出两张核心业务数据表,为后续的特征工程、指标计算与可视化仪表盘开发提供规范的数据基础。

通过本实验,学生应达成以下能力目标:

  • 理解数据清洗在数据分析全链路中的基础性作用,明确原始数据质量问题对分析结果的影响
  • 熟练使用助睿ETL可视化组件,完成多源数据的筛选、空值填充、分组聚合等标准化预处理操作
  • 掌握数据处理的“分支分流”设计思想:针对全平台概况统计与重点平台深度分析两类场景,分别设计差异化的数据清洗规则
  • 输出符合规范的两张结果数据表,可直接支撑可视化仪表盘不同模块的指标计算需求

2 实验环境

  • 实验平台:贵兰X助睿实践教学平台 https://lab.guilan.cn/ 平台版本为Uniplore v6.6.5,是面向教学场景的在线数据科学实践环境。

本次实验使用的助睿数智(Uniplore)iDIS平台,是AI驱动的一站式零代码大数据智能服务平台,覆盖数据接入、ETL集成处理、数据治理、AI建模到可视化分析的全链路能力,广泛应用于高校数据分析教学与企业级数据加工场景。 助睿数智官方网站:https://www.uniplore.com/

  • 核心工具:助睿ETL(数据集成模块)

助睿ETL是平台内置的流批一体数据集成工具,核心特性如下:

  • 全元数据驱动架构:全流程数据读取、转换、加载环节的所有对象均通过元数据标准化定义,保障数据处理的可追溯性
  • 零代码拖拽式操作:通过可视化拖拽方式完成数据抽取(Extract)、转换(Transform)、加载(Load)全流程,无需编写代码即可实现复杂数据处理逻辑
  • 丰富的预处理组件:内置200+种ETL处理组件,涵盖字段筛选、空值填充、分组聚合、多表连接、字段映射等各类转换能力,可灵活应对不同数据清洗场景
  • Pipeline流水线机制:以转换流水线(Pipeline)为核心处理单元,通过多个功能不同的Transform步骤串联组合,完成面向业务的数据加工转换
  • 高可用扩展引擎:基于开源内核的高可用引擎架构,通过标准化插件体系可灵活扩展数据处理能力,适配不同数据源与处理场景

3 核心设计思路

3.1 数据清洗的必要性

原始采集的自媒体作品数据存在多处质量问题,无法直接用于统计分析,需通过数据清洗修正缺陷:

  • 平台数据质量不均:数据集覆盖B站、CSDN、微信、知乎、小红书等多个内容平台,其中微信、知乎等平台的浏览量字段有效数据占比极低,无法支撑深度互动分析
  • 无效记录冗余:部分作品的浏览量、点赞量、收藏量均为0,可能为采集异常或无互动无效记录,会干扰整体指标的统计准确性
  • 字段缺失值:点赞、收藏、分享等互动字段存在空值,若不进行填充处理,后续数值计算与聚合统计会出现异常结果

数据清洗的核心目标就是针对性解决上述问题,输出口径统一、质量可靠的分析数据集。

3.2 分支式数据处理流程

本次实验需同时支撑可视化仪表盘的两类展示需求,对数据清洗的规则要求存在差异,因此在ETL设计中采用分支处理的架构:

  • 分支一:全平台概况统计分支。保留所有平台的全部作品记录,仅做基础空值处理,用于统计全班作品总数、覆盖平台数、总互动量等全局概况指标,对应输出表 summary_all_platforms
  • 分支二:重点平台深度分析分支。筛选出B站、CSDN两个数据质量较高的平台,同时过滤掉浏览量为0的无效记录,做精细化的字段清洗与标准化,用于后续单平台内容表现、互动转化率等深度分析,对应输出表 cleaned_details

在这里插入图片描述

两张表各司其职:summary_all_platforms 只用于仪表盘顶部的全平台概况指标卡;cleaned_details 作为中间结果,交给下一实验继续加工。

4 实验步骤

步骤1:创建目标表

在助睿ETL中创建两张目标表。

第一张是全平台概况表(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 总赞同数(仅知乎)

新建转换流

在这里插入图片描述

拖入执行一个sql脚本组件

在这里插入图片描述

选择数据源,插入建表语句

在这里插入图片描述

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 = '全平台概况汇总表';

执行并查看日志

img

这张表不做任何过滤,保留所有平台的原始数据。各平台特色指标(B站的投币、微信的推荐、知乎的喜欢/赞同)单独保留列,不合并到通用指标中。因为B站的投币和知乎的赞同含义不同,加在一起反而说不清楚,让它们各自独立,读者能清晰地看到每个平台有哪些互动行为。

第二张是内容分析表(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站)
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) 是否含“踩坑”

其中 interaction_rate, has_best, has_lowcode, has_practice, has_tutorial, has_pit 字段的数据加工将在下一个实验中完成。

新建转换流:

在这里插入图片描述

同样拖入执行一个sql脚本组件

img

连接数据源,插入sql语句:

img

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有效数据)';

执行转换流并查看日志:img

步骤2:导入原始数据

将已提供在助睿ETL公共空间的 自媒体作品数据明细.csv 导入到自己的文件库中,作为数据源输入。助睿ETL支持多种数据源接入,CSV文件可直接导入。

本次分析使用的数据来源于助睿ETL公共空间的 自媒体作品数据明细.csv,已采集了同学们在6月8日-6月15日前提交的作品互动数据。需要说明的是,该数据集仅覆盖采集时间节点前已发布且未被删除的作品,之后新提交或已删除的作品不在此次分析范围内。导入前请先将该文件从公共空间复制到自己的文件库中。

在这里插入图片描述

步骤3:全平台聚合统计

在数据清洗之前,先做一个分支。拖入“排序记录”、“分组”组件,按 日期 和 平台 排序、分组,其余数值字段全部取求和。输出 summary_all_platforms

新建转换流:

img

拖入csv文件输入

img

配置如下:

img

img

拖入排序记录组件:

img

获取字段,并保留需要分组的字段:

img

拖入分组组件:

img

获取字段后,保留需要进行分组的字段

img

删除作者名字、url、source_file、title字段后其余字段全部求和:

img

拖入表输出组件:

img

选择目标表:

img

勾选:

img

获取字段:

img

步骤4:过滤记录

在另一个分支中,使用“过滤记录”组件筛选B站和CSDN的有效记录:

只保留 B站 和 CSDN 两个平台,原始数据包含B站、CSDN、微信、知乎、小红书等多个平台。由于微信、知乎等平台的浏览数量大量缺失(值为0),无法支撑有意义的分析,因此只保留 B站 和 CSDN 的记录。

(2)删除两个平台中浏览量为0的记录,聚焦于真正产生用户互动的作品。

使用助睿ETL的“过滤记录”组件,通过 AND 与 OR 组合条件:

(平台 = 'B站' AND 浏览数量 > 0 ) OR (平台 = 'CSDN' AND 浏览数量 > 0)

在“过滤记录”组件中对应的配置如图:

img

逻辑说明:括号内的条件组合确保“平台”与“有效记录判定”同时满足,一个组件完成双重过滤。助睿ETL的过滤记录组件支持编写复杂条件表达式,可通过 AND、OR 灵活组合多条件,一步到位完成精细化数据筛选。

步骤5:填充缺失值

由于数值字段没有空值,但作者名称和作品标题可能存在空值,我们统一填充为位置,避免后续使用时出现异常。

img

步骤6:字段选择

原始数据中的 source_file是采集批次标记,分析阶段用不到,剔除掉。投币数量(coins)保留,作为B站特有的互动指标。用“字段选择”组件,只保留以下字段,其他字段全部剔除:

date, author_name, title, platform, likes, favorites, shares, coins, views, url

img

步骤7:输出清洗后中间表

将处理后的数据输出为 cleaned_details,这张表是实验7-2的输入。

img

步骤8:执行转换流

完整转换流如下,点击运行

img

img

数据探查结果:

img

img

5 核心知识点总结

  • 多条件过滤:使用 AND/OR 组合平台过滤与有效记录判定,一个组件完成双重过滤
  • 缺失值处理:统一填充默认值,避免计算异常
  • 多日期保留:保留时间维度用于趋势分析,暂不做去重
  • 助睿ETL Pipeline:通过多个Transform步骤组合完成完整的数据加工流程
  • 宽表设计:一次清洗、多次使用,一张表支撑全部后续分析

6 实验总结

6.1 实验收获

(1)分支式ETL流水线的设计与实现能力 本次实验掌握了助睿ETL中单输入、多分支的流水线设计方法,理解了不同分析场景对数据清洗规则的差异化要求。能够基于全平台概况统计、重点平台深度分析两类业务需求,设计两套并行的数据处理链路,明确了“原始数据输入→分支分流→差异化加工→分别输出”的ETL架构逻辑,具备了面向多场景搭建数据处理流水线的能力。

(2)多维度分组聚合与汇总表构建能力 熟练掌握了排序记录与分组组件的配合使用方法,能够按采集日期、平台名称两个维度对明细数据进行分组,完成作品数量、浏览量、互动量等多字段的求和聚合。理解了聚合统计在数据分析中的作用,能够独立完成从明细数据到维度汇总表的加工流程,掌握了宽表汇总的标准化操作步骤。

(3)复杂条件数据筛选的实操能力 深入掌握了过滤记录组件的配置方法,能够通过AND、OR逻辑组合实现多条件联合筛选。完成了“平台匹配+浏览量有效性判定”的双重过滤逻辑,理解了条件优先级对筛选结果的影响,能够根据业务需求灵活配置筛选规则,精准提取目标数据子集。

(4)目标表创建与数据加载全流程能力 掌握了通过执行SQL脚本组件创建数据库表的方法,能够根据业务指标设计表字段结构、数据类型与注释,完成建表语句的编写与执行。同时熟练掌握表输出组件的配置流程,能够完成数据流字段与目标表字段的映射匹配,实现清洗后数据的结构化入库,打通了从数据加工到数据落地的完整链路。

(5)数据清洗基础方法与质量意识 掌握了缺失值填充、冗余字段裁剪两类基础数据清洗操作,能够针对文本类字段填充默认值、剔除无分析价值的采集标记字段。理解了原始数据质量问题对后续分析的影响,建立了数据预处理的标准化意识,明确了数据清洗在数据分析全流程中的基础性地位。

6.2 实验故障与解决方案

故障1:CSV文件读取后字段错位、中文乱码 故障现象:配置CSV文件输入组件后预览数据,出现字段内容错位、中文名称显示为乱码的情况,无法正常识别平台名称、作品标题等字段。 故障原因:一是文件编码与组件默认编码不匹配,导致中文乱码;二是未正确勾选“包含列头行”选项,首行数据被识别为内容,引发字段错位。 处理方案:打开CSV文件输入组件配置界面,将编码格式修改为UTF-8与源文件保持一致;勾选“包含列头行”选项,让首行内容作为字段名;点击预览校验字段拆分与中文显示正常后,保存配置即可。

赞(0)
未经允许不得转载:171主机测评 » 自媒体运营分析-数据清洗与预处理
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址