生成描述性统计数据

178 浏览
16 试用
4 购买
Sep 27, 2025更新

为指定数据列生成精准的描述性统计分析。

要生成“销售额”数据列的描述性统计,需要提供该列的原始数据或可访问的数据源。目前尚未收到具体数据,以下为标准化的统计指标清单、计算方法和返回格式。一旦提供数据(如CSV、DataFrame或SQL表),我将基于这些规范输出数值结果。

输入需求

  • 数据格式:单列数值(销售额),包含货币单位说明(例如:人民币,含税/不含税)。
  • 业务规则:是否包含退货/负值、是否包含运费/税费、时间范围、是否存在重复记录。
  • 缺失值标识:NA、空字符串或特殊编码。

统计指标清单(针对连续型金额列)

  • 计数相关:
    • 非缺失计数(count)
    • 缺失计数(missing_count)
    • 零值计数(zero_count)
  • 位置与离散:
    • 总和(sum)
    • 平均值(mean)
    • 中位数(median)
    • 最小值、最大值(min, max)
    • 极差(range = max − min)
    • 方差、标准差(variance, std)
    • 变异系数(cv = std / mean)
    • 四分位数(Q1, Q3)与四分位距(IQR = Q3 − Q1)
    • 选定分位数:p1, p5, p95, p99
    • 中位绝对偏差(MAD)
  • 形态:
    • 偏度(skewness)
    • 峰度(kurtosis)
  • 异常值度量(可选):
    • IQR规则下的异常值计数与比例(< Q1 − 1.5×IQR 或 > Q3 + 1.5×IQR)
    • Z分数规则下的异常值计数与比例(|z| ≥ 3)(如分布近似正态)
  • 分布不均衡度(可选,用于销售数据常见的长尾分布):
    • Top 1%、5%、10%销售额占比
    • Gini系数(如需衡量集中度)

计算方法示例

  • Python(pandas)
    • 预处理:
      • 将销售额列转为数值:df['sales'] = pd.to_numeric(df['sales'], errors='coerce')
      • 去除无意义负值或根据业务保留退货:按规则过滤
    • 统计:
      • s = df['sales'].dropna()
      • 指标直接用 s.sum(), s.mean(), s.median(), s.min(), s.max(), s.std(), s.var(), s.quantile([0.01,0.05,0.25,0.5,0.75,0.95,0.99]) 等
      • 偏度、峰度:from scipy.stats import skew, kurtosis
      • MAD:from statsmodels import robust; robust.mad(s, c=1)
      • IQR异常:q1, q3 = s.quantile([0.25, 0.75]); iqr = q3 - q1; lower = q1 - 1.5iqr; upper = q3 + 1.5iqr; outlier_count = ((s < lower) | (s > upper)).sum()
      • Top占比:share_top10 = s.nlargest(int(len(s)*0.10)).sum() / s.sum()
  • SQL(以PostgreSQL为例)
    • 基本指标:
      • SELECT count(sales) AS count_non_null, sum(sales) AS sum, avg(sales) AS mean, min(sales) AS min, max(sales) AS max, stddev_samp(sales) AS std, var_samp(sales) AS var FROM table;
    • 分位数(近似):
      • SELECT percentile_cont(0.5) WITHIN GROUP (ORDER BY sales) AS median, percentile_cont(0.25) AS q1, percentile_cont(0.75) AS q3, percentile_cont(0.95) AS p95, percentile_cont(0.99) AS p99 FROM table WHERE sales IS NOT NULL;
    • 零值、缺失、异常值计数:
      • SELECT sum(CASE WHEN sales=0 THEN 1 ELSE 0 END) AS zero_count, sum(CASE WHEN sales IS NULL THEN 1 ELSE 0 END) AS missing_count FROM table;
      • 对IQR异常值需先计算q1、q3后在应用阈值(可用CTE)。

数据预处理要点

  • 统一货币与税费口径:确保金额可比;如跨币种,先汇率归一化。
  • 处理退货和负值:明确是否计入销售额统计或单独报告。
  • 去重:识别重复交易或重复行,避免重复计数。
  • 异常金额验证:极端值可先进行规则校验(如订单金额上限)再决定是否剔除或单独标注。
  • 时间维度一致性:如为累计销售额列,避免与交易级混用。

结果解读建议

  • 销售额通常右偏长尾,关注中位数与分位数而非仅均值。
  • 变异系数和IQR能更好反映波动性;MAD适合作为稳健离散度量。
  • Top占比或Gini系数用于评估销售集中度,有助于识别头部客户或单品的贡献。
  • 异常值应结合业务规则确认是正常大单还是数据问题。

标准返回格式示例(无具体数值,仅结构)

  • 基本统计:
    • count_non_null: …
    • missing_count: …
    • zero_count: …
    • sum: …
    • mean: …
    • median: …
    • min: …
    • max: …
    • range: …
    • variance: …
    • std: …
    • cv: …
  • 分位数:
    • p1: …
    • p5: …
    • q1: …
    • q3: …
    • p95: …
    • p99: …
    • iqr: …
    • mad: …
  • 形态与异常:
    • skewness: …
    • kurtosis: …
    • outlier_count_iqr: …
    • outlier_ratio_iqr: …
  • 集中度(可选):
    • share_top1: …
    • share_top5: …
    • share_top10: …
    • gini: …

请提供“销售额”数据或数据样例(前几行),以及上述业务口径说明。我将据此计算并返回完整的描述性统计结果。

为“留存率”列提供描述性统计需要确认数据粒度与取值范围,并计算核心统计量。由于未提供原始数据,以下是标准化流程、应报告的指标以及可直接执行的计算示例。请根据你的数据结构(单用户层或群组/分群层)选择相应方法,并提供数据以便我输出具体数值。

一、数据校验与预处理

  • 类型与范围:
    • 确认留存率是否为比例(0–1)或百分比(0–100)。如为百分比,统一转换为比例:rate = value / 100。
    • 标记并剔除不可能值(rate < 0 或 rate > 1)。记录异常数量。
  • 粒度确认:
    • 单用户层(二元变量:留存=1/未留存=0):均值即总体留存率;分布为伯努利型。
    • 分群/分期聚合层(每行是一个群组的留存率):报告非加权统计,同时如有群组样本量(如 cohort_size),需给出加权统计(加权均值、加权分位数用加权方法)。
  • 缺失值处理:
    • 统计缺失数量与比例;描述性统计通常在非缺失值上计算,不进行填补。
  • 去重检查:
    • 如因关联导致重复行,需依据主键去重后再计算。

二、建议报告的描述性统计指标(未加权)

  • 计数与缺失:
    • 非缺失样本数 n
    • 缺失值数量与比例
  • 位置与离散程度:
    • 均值 mean
    • 中位数 median
    • 标准差 std、方差 var
    • 最小值 min、最大值 max
    • 四分位数 Q1、Q3,四分位距 IQR = Q3 − Q1
    • 关键分位数:P1、P5、P95、P99
    • 变异系数 CV = std / mean(仅在 mean > 0 时报告)
  • 分布形态:
    • 偏度 skewness
    • 峰度 kurtosis(可报告超额峰度,即相对正态的偏离)
  • 异常值:
    • IQR法:低于 Q1 − 1.5×IQR 或高于 Q3 + 1.5×IQR 的数量与比例
    • Z分数法:|z| > 3 的数量与比例(适用于近似正态的聚合率分布)
  • 特殊比例:
    • rate 等于 0 或 1 的比例(有助于识别极端群组或质量问题)

三、加权统计(分群数据建议同时报告)

  • 加权均值(以群组样本量 w 加权):mean_w = Σ(w_i × rate_i) / Σ(w_i)
  • 加权分位数:需使用加权分布函数(例如按权重展开或用加权分位数算法);如无法计算,至少报告加权均值与加权标准差。

四、计算示例(Python/pandas)

  • 单列未加权统计:
    • s = pd.Series(retention_rate) # 已统一为 0–1
    • s = s.dropna()
    • n = s.size
    • mean = s.mean(); median = s.median(); std = s.std(ddof=1); var = s.var(ddof=1)
    • min_, max_ = s.min(), s.max()
    • q1, q3 = s.quantile(0.25), s.quantile(0.75); iqr = q3 - q1
    • p1, p5, p95, p99 = s.quantile([0.01, 0.05, 0.95, 0.99])
    • cv = (std / mean) if mean > 0 else None
    • skew = s.skew(); kurt = s.kurt() # pandas为超额峰度
    • out_iqr = ((s < q1 - 1.5iqr) | (s > q3 + 1.5iqr)).mean()
    • prop_zero = (s == 0).mean(); prop_one = (s == 1).mean()
  • 加权均值(有 cohort_size 列):
    • mean_w = (df['rate'] * df['cohort_size']).sum() / df['cohort_size'].sum()

五、结果解读要点

  • 均值与中位数差异较大通常表示偏态;结合偏度判断方向(正偏度表示长右尾)。
  • 高CV或IQR相对均值较大说明群组间异质性强,可能需要进一步分层分析。
  • 边界值比例(0或1)高或存在>1/<0值,多为数据质量问题或计算口径不一致。
  • 对分群留存率,优先用加权均值进行总体判断;非加权分位数用于了解群组分布。

请提供“留存率”列的原始数据样本、列类型(比例或百分比)、数据粒度(单用户或分群)及可用权重(如群组样本量)。我将据此计算并返回完整的描述性统计结果。

要提供“停留时长”列的描述性统计,需要原始数据。由于你尚未提供具体数据,以下给出应计算的统计指标、核验要点及可复用的计算方法。你可以将数据提供为CSV/SQL表或说明计量单位(秒/分钟),我即可产出具体数值。

一、数据核验与预处理

  • 数据类型:应为数值型;若为字符串,需转换为数值。
  • 单位与尺度:确认单位(建议统一为秒);若为分钟需统一转换。
  • 异常值检查:负值视为无效;极大值需确认是否为采集问题。
  • 缺失与零值:统计缺失比例与零值比例(零值可能代表未发生或计时未启动)。

二、建议输出的描述性统计指标

  • 样本量与缺失
    • count:非缺失记录数
    • missing_count、missing_rate:缺失数量与比例
    • unique:非缺失唯一值数量
  • 位置与尺度
    • min、max、range:最小、最大、极差
    • mean、median:均值、中位数
    • q1、q3、iqr:25%分位、75%分位、四分位距
    • p5、p95、p99:5%、95%、99%分位(可用于尾部分析)
    • std、var:样本标准差、样本方差(ddof=1)
    • cv:变异系数 = std / mean(均值为0时不可用)
    • geometric_mean(可选):几何均值,需全部为正且适用于对数偏态分布
  • 分布形状
    • skew:偏度(>0表右偏)
    • kurtosis:峰度(Fisher定义,正值表示尖峰厚尾)
  • 数据质量与离群
    • zero_count、zero_rate:零值数量与比例
    • negative_count、negative_rate:负值数量与比例
    • outlier_count_iqr、outlier_rate_iqr:基于IQR规则的离群点计数与比例(阈值为 [Q1−1.5IQR, Q3+1.5IQR])

三、Python计算示例(pandas) 请将 df['停留时长'] 替换为你的数据列,并确认单位。

  • ddof=1 计算样本统计,符合常用描述性统计习惯。
  • 如果为分钟,先做 df['停留时长'] *= 60 转为秒。

代码: import numpy as np import pandas as pd from scipy import stats

s_raw = df['停留时长'] s = pd.to_numeric(s_raw, errors='coerce') # 转数值 missing_count = s.isna().sum() missing_rate = s.isna().mean()

s = s.dropna() n = s.size

desc = {} desc['count'] = n desc['missing_count'] = missing_count desc['missing_rate'] = round(missing_rate, 6) desc['unique'] = s.nunique() desc['min'] = s.min() desc['p5'] = s.quantile(0.05) desc['q1'] = s.quantile(0.25) desc['median'] = s.median() desc['mean'] = s.mean() desc['q3'] = s.quantile(0.75) desc['p95'] = s.quantile(0.95) desc['p99'] = s.quantile(0.99) desc['max'] = s.max() desc['range'] = desc['max'] - desc['min'] desc['std'] = s.std(ddof=1) desc['var'] = s.var(ddof=1) desc['cv'] = desc['std'] / desc['mean'] if desc['mean'] != 0 else np.nan desc['iqr'] = desc['q3'] - desc['q1'] desc['skew'] = s.skew()

pandas.kurtosis 默认为 Fisher 定义(减3),如版本差异可用 scipy

desc['kurtosis'] = stats.kurtosis(s, fisher=True, bias=False)

zero_mask = (s == 0) desc['zero_count'] = int(zero_mask.sum()) desc['zero_rate'] = float(zero_mask.mean())

neg_mask = (s < 0) desc['negative_count'] = int(neg_mask.sum()) desc['negative_rate'] = float(neg_mask.mean())

iqr = desc['iqr'] lower = desc['q1'] - 1.5 * iqr upper = desc['q3'] + 1.5 * iqr outlier_mask = (s < lower) | (s > upper) desc['outlier_count_iqr'] = int(outlier_mask.sum()) desc['outlier_rate_iqr'] = float(outlier_mask.mean())

几何均值(仅正数)

pos = s[s > 0] desc['geometric_mean'] = float(stats.gmean(pos)) if pos.size == n else np.nan

print(pd.Series(desc))

四、SQL(PostgreSQL)示例

  • 使用 percentile_cont 计算分位数。
  • stddev_samp 为样本标准差。

SELECT COUNT() FILTER (WHERE "停留时长" IS NOT NULL) AS count, COUNT() FILTER (WHERE "停留时长" IS NULL) AS missing_count, AVG(CASE WHEN "停留时长" IS NULL THEN 1 ELSE 0 END)::float / COUNT(*) AS missing_rate, MIN("停留时长") AS min, percentile_cont(0.05) WITHIN GROUP (ORDER BY "停留时长") AS p5, percentile_cont(0.25) WITHIN GROUP (ORDER BY "停留时长") AS q1, percentile_cont(0.50) WITHIN GROUP (ORDER BY "停留时长") AS median, AVG("停留时长") AS mean, percentile_cont(0.75) WITHIN GROUP (ORDER BY "停留时长") AS q3, percentile_cont(0.95) WITHIN GROUP (ORDER BY "停留时长") AS p95, percentile_cont(0.99) WITHIN GROUP (ORDER BY "停留时长") AS p99, MAX("停留时长") AS max, stddev_samp("停留时长") AS std, VARIANCE("停留时长") AS var FROM your_table;

五、下一步

  • 请提供“停留时长”数据样本或完整列(含单位),我将据此输出具体的描述性统计数值与简要解读(如偏态程度、尾部特征、离群点占比)。如果存在分群(如按渠道或页面),可同步计算分组描述性统计以支持进一步分析。

示例详情

解决的问题

把“生成描述性统计数据”做成人人可用的数据体检器:只需输入一个数据列名称,即刻获得可靠的核心统计、分布特征、异常提醒与下一步建议;帮助你更快验证假设、定位问题、发现增长机会;标准化探索分析流程,减少等待与反复沟通,提升团队的数据自助能力;支持多语言输出,便于跨团队共享与复盘;最终目标是让零散数据迅速转化为可落地的业务行动与决策。

适用用户

数据分析师/商业分析师

拿到新数据时,针对关键指标列一键生成统计摘要,识别缺失与异常,确定合理分组与阈值,快速写入分析报告与看板注释。

增长/运营经理

快速看清注册、下单、留存等指标的分布与波动,发现异常与边界,得到阈值建议,用于活动评估、渠道对比与投放调优。

产品经理

在功能灰度或A/B测试前后,提取关键行为列的集中趋势与极值,判断埋点质量、定义健康阈值,为版本上线决策提供依据。

特征总结

一键生成该列统计概览:均值、中位、分位、极值、缺失与唯一值,秒级读懂特性。
自动识别数据类型与异常情况,并给出清洗与边界值建议,减少反复试错。
结合业务语境给出可读解读,指出分布形态与潜在风险,支持更贴近场景的判断。
多语言一键切换,自动用中英文输出,直接用于周报、复盘、论文与跨团队沟通。
输出结构清晰、术语克制,便于复制到PPT与文档,省下整理格式与二次讲解时间。
按列名灵活调用,支持临时分析与批量字段体检,嵌入你的现有数据工作流。
面向增长和运营给出可行动提示,如阈值建议、异常波动观察点,快速定位问题。
统一专家化写作口径,确保不同成员输出一致标准,降低沟通与复核成本。

如何使用购买的提示词模板

1. 直接在外部 Chat 应用中使用

将模板生成的提示词复制粘贴到您常用的 Chat 应用(如 ChatGPT、Claude 等),即可直接对话使用,无需额外开发。适合个人快速体验和轻量使用场景。

2. 发布为 API 接口调用

把提示词模板转化为 API,您的程序可任意修改模板参数,通过接口直接调用,轻松实现自动化与批量处理。适合开发者集成与业务系统嵌入。

3. 在 MCP Client 中配置使用

在 MCP client 中配置对应的 server 地址,让您的 AI 应用自动调用提示词模板。适合高级用户和团队协作,让提示词在不同 AI 工具间无缝衔接。

AI 提示词价格
¥15.00元
先用后买,用好了再付款,超安全!

您购买后可以获得什么

获得完整提示词模板
- 共 245 tokens
- 2 个可调节参数
{ 数据列名称 } { 输出语言 }
获得社区贡献内容的使用权
- 精选社区优质案例,助您快速上手提示词
限时免费

不要错过!

免费获取高级提示词-优惠即将到期

17
:
23
小时
:
59
分钟
:
59