在 DataEase 中如何进行数据加工


飞致云 发布于 2025-02-13 / 70 阅读 / 0 评论 /
注:本文所有内容基于 MySQL 数据源,不同数据库语法和函数用法稍有差异,请按需参考。 1. 为什么要进行数据加工 在进行数据分析时,数据中可能存在空值导致计算结果错误,字段类型不正确影响图表制作,数据结构不合理导致不方便分析等问题,影响数据分析展示效果,降低分析效率。处理数据的最终目的是为了高效

注:本文所有内容基于 MySQL 数据源,不同数据库语法和函数用法稍有差异,请按需参考。

1. 为什么要进行数据加工

在进行数据分析时,数据中可能存在空值导致计算结果错误,字段类型不正确影响图表制作,数据结构不合理导致不方便分析等问题,影响数据分析展示效果,降低分析效率。处理数据的最终目的是为了高效清晰地完成数据可视化。

2. DataEase 中如何进行数据加工

DataEase 中进行数据加工,除了计算字段,v1 版本中还可以新建 SQL 数据集,v2 版本中可以添加“自定义 SQL”。除此之外,图表中也可以进行数据加工,比如调整数值格式,设置字段计算方式如:求和、方差、占比、同环比等等。具体功能可参考 DataEase 文档

2.1 v1 版本数据加工功能

v1 版本中如果计算字段中使用聚合函数(SUM()、AVG()、MAX()等等),需使用“视图字段管理”来创建计算字段。

2.2 v2版本数据加工功能

在 v2 版本中,所有“新建计算字段“都在数据集中管理,如果计算字段中包含聚合函数,在数据集中显示为’-‘,在图表中可正常使用。

3. 数据处理场景及方法

3.1 简化数据结构

3.1.1 脏数据

数据中难免有 null、重复值、不合理值,对于这类数据处理方法如下

方法一

在数据集中不做处理,在制作图表中进行处理,比如使用图表的过滤功能。

方法二

特殊值标记法。

通过新建计算字段,使用函数加工数据,对特殊值进行转义。

计算字段函数参考如下。

if([数学]= 0 ,'缺考','正常')

-- 或者填充空数据,比如将名字为空的地方,置为"xxx"
if([姓名] is null,'xxxx',[姓名])

3.1.2 字段类型不合理

字段类型识别有误,或者字段类型不满足图表制作。

对于这类问题,可以在"数据集→批量管理"中更改字段类型。

.1.3 数据结构不方便

对于数据结构不方便的数据,需要分情况看。

情况一

如下图所示,数据值录入不合理,对数据计算造成困难:

解决方法

利用“新建计算字段”功能,从原数据中利用函数分别提取有效信息。相关函数有 SUBSTRING()、SUBSTR()、SUBSTRING_INDEX() 等等,具体函数需要根据使用的数据源确认。

注意:公式中使用的字段名称需点击右侧引用字段。

计算字段函数参考如下。

-- 以上图为例
语文:substring([成绩],1,4)    substring([成绩],3,2)
数学:substring([成绩],6,4)    substring([成绩],8,2)

-- 或者使用其他函数,以语文为例:
substring_index([成绩], '、', 1)
substring_index(substring_index([成绩], '、', 1), '语文', -1)

情况二

如下图所示,数据结构行列设置不合理,对数据计算造成困难。

解决方法

使用 SQL 进行处理,SQL 示例如下。

select
    姓名,
    max(case when 科目 = '语文' then 成绩 end) as 语文,
    max(case when 科目 = '数学' then 成绩 end) as 数学,
    max(case when 科目 = '英语' then 成绩 end) as 英语
from
    excel_Sheet2_bac8301278
group by
   姓名

情况三

与情况二相反

解决方法

使用 SQL 进行处理,SQL 示例如下。

select 
    姓名,
    '语文' AS 科目,
    语文 AS 成绩
from 
    excel_Sheet3_7452edc176
union all
select
   姓名,
    '数学' AS 科目,
    数学 AS 成绩
from
    excel_Sheet3_7452edc176
union all
select 
   姓名,
    '英语' AS 科目,
    英语 AS 成绩
from 
   excel_Sheet3_7452edc176

3.2 多表合并

3.2.1 上下合并

如图两张表,表结构一致,需要将它们上下合并为一张表。

解决方法

在数据集中使用自定义 SQL,SQL 中使用 UNION ALL 合并两个表,示例如图。

SQL 参考如下。

select * from excel_Sheet3_7452edc176
union all
select * from excel_Sheet4_6f6b874a2d;

3.2.2 左右合并

如图,期望将右侧表中的性别,补充在左侧表。

方法一

使用数据集关联功能。

在数据集编辑界面,将需要关联的表拖入右侧编辑区,并配置正确的关联条件。

结果

方法二

在数据集中新建自定义 SQL,在 SQL中使用 JOIN、LEFT JOIN、RIGHT JOIN 等方式实现两张表的左右合并。

3.3 新建计算字段

3.3.1 普通公式

只有使用四则运算的普通公式,比如:字段a/字段b,一般常用来计算比率,写法如下图。

注意:公式中使用的字段名称需点击右侧的字段引用。

3.3.2 计算公式中包含聚合函数

使用这类计算字段需要注意的是其中的聚合函数,比如 SUM()、AVG()、MAX() 等等。聚合函数的结果在数据集中显示为’-‘,仅在图表中可正常使用,使用示例如下图。

3.3.3 条件判断列

这类计算字段通常用来做判断,一般使用 CASE WHEN、IF 等函数。

比如,根据语文成绩进行评级,60分以下为不及格,60-90分为良好,90分及以上为优秀。

示例如图:

结果:

4. DataEase 中验证数据的方法

进行数据处理后,数据集预览只能展示前 100 条数据,如有需要,可以在明细表中结合图表过滤器的使用验证全部数据。

对于数据集中包含新建聚合字段的,需要使用有聚合效果的图表才能生效,验证时可以使用汇总表、柱状图等。



是否对你有帮助?