生成描述性统计数据

0 浏览
0 试用
0 购买
Sep 27, 2025更新

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

示例1

要生成“销售额”数据列的描述性统计,需要提供该列的原始数据或可访问的数据源。目前尚未收到具体数据,以下为标准化的统计指标清单、计算方法和返回格式。一旦提供数据(如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.5*iqr; upper = q3 + 1.5*iqr; 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: …

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

示例2

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

一、数据校验与预处理
- 类型与范围:
  - 确认留存率是否为比例(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.5*iqr) | (s > q3 + 1.5*iqr)).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值,多为数据质量问题或计算口径不一致。
- 对分群留存率,优先用加权均值进行总体判断;非加权分位数用于了解群组分布。

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

示例3

要提供“停留时长”列的描述性统计,需要原始数据。由于你尚未提供具体数据,以下给出应计算的统计指标、核验要点及可复用的计算方法。你可以将数据提供为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.5*IQR, Q3+1.5*IQR])

三、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 工具间无缝衔接。

¥15.00元
平台提供免费试用机制,
确保效果符合预期,再付费购买!

您购买后可以获得什么

获得完整提示词模板
- 共 245 tokens
- 2 个可调节参数
{ 数据列名称 } { 输出语言 }
自动加入"我的提示词库"
- 获得提示词优化器支持
- 版本化管理支持
获得社区共享的应用案例
限时免费

不要错过!

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

17
:
23
小时
:
59
分钟
:
59