用 DolphinDB summary 函数优化你的数据清洗策略

1. 业务场景

对数据集深入分析前,可以通过 summary 函数快速了解数值型列的概括信息,例如,平均值、标准差、最小值、最大值和百分位数,这有助于初步了解数据的分布情况和特征。在探索性数据分析(EDA)过程中,summary 函数有助于识别异常值、离群值和数据分析的偏态。通过观察统计信息,可以进一步决定数据清洗和数据转换的策略。例如,如果某个数值型列的最大值或最小值远离其平均值,则可能存在异常值或离群值;如果某个数值型列的标准差较大,则表示可能存在数据分布的偏态。

2. 函数简介

2.1 语法

summary(X,[interpolation='linear'],[characteristic=`avg`std],[percentile=[25,50,75]],[precision=0.01],[partitionSampling=1.0])

2.2 参数介绍

  • X:内存表、DFS 表或由 sqlDS 函数生成的数据源。
  • interpolation:计算百分位采用的插值方法,可选:linear、nearest、lower、higher、midpoint。
  • characteristic:需要输出的统计特征,可选:avg 和 std。
  • percentile:需要输出的百分位数。
  • precision:百分位计算精度。
  • partitionSampling:针对分区表设计的参数,表示参与进行数据统计的分区数量。

有关 summary 函数的用法、示例及注意事项,参考 DolphinDB 用户手册中该函数的详细介绍。

3. 使用示例

3.1 生成内存表统计信息

n=2022
data=1..2022
value=take(1..3,n)
name=take(`APPLE`IBM`INTEL,n)
t=table(data,value,name);
res = summary(t, precision=0.001);

3.2 生成 DFS 表统计信息

db = database(dbName,VALUE,`A`B`C`D)
...
pt = loadTable(dbName, tableName)
// 生成 DFS 表统计信息,同时指定分区采样率为 0.5
re = summary(pt,`linear,`avg`std, [25,50], 0.001, 0.5)

示例中的 DFS 表采用值分区方式,拥有 A、B、C和 D 共 4 个分区。分区采样率为 0.5,结果将随机输出 2 个分区的数据统计信息。

3.3 使用 SQL 语句作为输入数据源

ds = sqlDS(