跳到工具
ViewCSV
无需上传文件

用数据透视表分析 CSV 数据

region-orders.csv· 示例数据48 行 · 7 列
行
  1. region
列
  1. month
值
  1. 求和项:amount
  2. 行数
总计与排序
数字格式
先筛选行
已保存的布局
还没有保存的布局。
布局只保存在当前浏览器中。要在别处使用,请导出为 JSON 文件。

基于 region-orders.csv 的全部 48 行计算。

有 1 个值不是数字,未计入“求和项:amount”。
数据透视表,共 40 个值单元格。选择一个值可查看它对应的行。
region2026-012026-022026-032026-04总计
求和项:amount行数求和项:amount行数求和项:amount行数求和项:amount行数求和项:amount行数
上海
北京
广州
总计

求和、最小值、最大值和中位数都是精确值;平均值和百分比按精确的商四舍五入到 15 位有效数字。每个分类汇总和总计都直接由原始行计算,而不是把其他单元格相加。下载内容保留全部位数。

要用 CSV 做数据透视表,先打开文件,把字段添加到 行 和 列 下,再在 值 下选择要计算的内容:求和、计数、非重复计数、平均值、中位数、最小值或最大值。分类汇总和总计都由文件中的原始行计算,而不是把上方的单元格相加,所以每一级汇总里的平均值和非重复计数都是准确的。点击任意一个值即可查看它背后的明细行;完成的表格可以下载为 CSV 或 XLSX,也可以生成图表。同一个文件还有两个标签页回答其他问题:列概况 逐列报告数据类型、空单元格、重复情况和统计值,SQL 可以对一个或多个文件运行查询。文件不会上传。

如何用 CSV 创建数据透视表

  1. 打开文件、粘贴文本或试用示例数据。切换到 数据透视表 标签页时,工具已根据列名预设好一个初始布局。
  2. 在 行 下用 添加字段 最多添加 4 个字段,第一个字段是最外层的分组。用箭头调整顺序,用 × 移除。
  3. 在 列 下最多添加 3 个字段,它们的取值会横向展开为列标题。不加列字段时,结果就是一张分组列表。
  4. 在 值 下用 值汇总方式 和 列 选择要计算的内容,再用 添加值字段 最多添加 8 个值。
  5. 对于求和与计数,可以用 值显示方式 把每个值显示为占总计、行汇总或列汇总的百分比。

分组按单元格的精确文本进行:North 和 North 是两个不同的组,空单元格单独成为一组,显示为(空白),01067 这样的编码会保留前导零。如果希望它们归为一组,请先在 清洗 CSV 数据 中去除多余空格。

行数组内的行数,与值所在列的内容无关。
计数所选列中非空单元格的个数。
非重复计数所选列中按原始写法区分的不同值个数;每个汇总和总计都会重新统计。
求和、最小值、最大值对该列中的数字做精确的十进制运算。
平均值精确合计除以数字的个数,四舍五入到 15 位有效数字。
中位数位于中间的那个数字;数字个数为偶数时,取中间两个数的精确平均值。

分类汇总和总计是怎样算出来的

勾选 为每个行分组显示分类汇总 后,每个外层行分组的成员之后都会多出一行汇总;显示总计行和总计列 会添加总计行,有列字段时还会添加总计列。这些汇总都由文件中对应的行直接计算,而不是把上方的单元格加起来。正因如此,汇总里的平均值、中位数和非重复计数才是正确的:总平均值是全部金额之和除以金额个数,而不是各组平均值的平均;在两个地区都下过单的客户,在总计中只算一次。

数值字段中不是数字的单元格,例如 n/a 或 12 kg,会被排除,并在表格下方提示排除了多少个;空单元格直接忽略。把 文件中的小数点 设为逗号后,1,5 会读作 1.5。千位分隔符和货币符号始终不会按数字读取。

行可以按行标签或任意一个值排序,升序或降序均可;有分类汇总时,每一层都在其上一级分组内部排序。显示的小数位数 和 使用千位分隔符 只影响显示,下载的内容保留全部位数。

查看明细、导出结果和复用布局

  • 点击表格中的任意一个值,就会列出它背后的行及其数量,最多显示前 1,000 行。可以把它们全部下载为 CSV;不超过 1,000 行时,也可以在编辑器中打开。看完后点击 返回数据透视表。
  • 先筛选行 可以只统计符合条件的行;表格上方会说明实际用了多少行。
  • 完成的表格可以下载为 CSV 或 XLSX。汇总行和汇总列都带有标签,数字保留精确的位数;在 XLSX 中,有效数字超过 15 位的数字会保持为文本,以免被 Excel 舍入。下载的是一张静态表格,而不是可以重新拖放字段的 Excel 数据透视表。
  • 生成图表 会把明细行发送到 CSV 生成图表,不包含分类汇总和总计,所以不会重复计算。
  • 已保存的布局 会把布局保存在当前浏览器中;用 导出布局 和 导入布局 可以通过一个很小的 JSON 文件在不同设备间转移布局。如果布局用到的列在另一个文件中不存在,你可以选择替代的列,或者去掉该字段。

用 SQL 查询一个或多个文件

SQL 标签页会把当前打开的文件载入本标签页中的一个 SQLite 数据库。表名取自去掉扩展名的文件名,空格和标点替换为 _:sales 2026.csv 对应的表名是 sales_2026。所有列都以文本形式存储,值保持原样;查询中需要做算术运算时,请使用 CAST(amount AS REAL)。

点击 添加其他文件 可以把更多文件载入为新的表,并在同一条查询中关联它们。运行查询 会以表格形式显示结果,可以下载为 CSV,也可以在编辑器中打开。SQL 标签页要求文件在交互处理上限(25 MB)以内;更大的文件请使用数据透视表,它可以用流式方式读取整个文件。

列概况:数据类型、空值、重复行和统计值

数据类型整数、小数、true/false、日期、日期时间或文本。只有当所有非空值都符合某种类型时,该列才会被认定为这种类型;整数和小数混合算作小数,日期和日期时间混合算作日期时间,其他情况都算文本。符合该类型的值所占的比例也会显示出来。
空单元格为空或只包含空格的单元格。其他所有统计都不计入它们。
不同值和高频值该列共有多少个不同的值,以及出现最多的 10 个值,按原始写法精确比较:paid 和 paid 是两个值。
长度最短和最长的值包含多少个字符,每个 emoji 或带重音的字母都只算一个字符。
前导零有多少个值以 0 后跟数字开头,例如 00731。这类值通常是编码,必须保持为文本。
多余空格有多少个值的开头或结尾带有空格。
重复行和空行每个单元格都与前面某一行相同的行,以及所有单元格都为空的行。
数值汇总数值的个数、精确合计、精确的最小值和最大值(按原写法显示,所以 4.50 仍是 4.50)、平均值、样本标准差、中位数、第一和第三四分位数,以及 5 到 20 个等宽区间的分布图。

哪些值算作数字,结果有多精确

只有使用小数点的普通十进制写法才算数字:可选的正负号、数字、可选的小数部分和可选的指数,例如 -12.5、120.00 或 3e5。不接受千位分隔符,所以 1,234 既不会读作 1234,也不会读作 1.234;12 kg、$5、¥5 或 1,5 都不是数字。

合计、最小值和最大值使用精确的十进制运算,所以 0.1 + 0.2 的合计正好是 0.3;9007199254740992 和 9007199254740993 这样两个 16 位的 ID,也能得到真实的最小值、最大值和合计。

平均值、标准差、四分位数和分布图使用标准的双精度浮点运算,因此可能出现舍入误差,例如四分位数显示为 16.049999999999997。双精度无法如实保存的值不参与这些统计,而是单独计数:超出 ±9,007,199,254,740,991(`Number.MAX_SAFE_INTEGER`)的整数、有效数字超过 15 位的小数,以及对双精度来说过大或过于接近 0 的值,例如 1e-1000。这样的值绝不会变成虚假的 0,也不会与相邻的值混为一个;如果所有值都属于这种情况,平均值和四分位数就直接留空。

四分位数在排序后的值之间做线性插值。一列中前 1,000,000 个数字的四分位数是精确的;超过之后,结果来自 1,000,000 个值的可重现随机样本,并标注为近似值。

正确解读结果

  • 像 001041 这样补零的 ID 列,因为有前导零会被报告为文本,但它的值仍能解析为数字,所以也会显示合计和平均值。请忽略它们:前导零的计数说明这一列是编码,而不是数量。
  • 被推断为文本的数字列,通常含有某个异常值:n/a、12 kg、逗号小数或千位分隔符。类型比例会显示有多少个值符合;其余的值可以在 CSV 在线查看 中找出来。
  • 只识别 ISO 格式的日期(2026-03-25、2026-03-25T14:30:00Z)。11/03/2026 算作文本,因为它既可能是 11 月 3 日,也可能是 3 月 11 日。
  • 每列不同值的个数在 10 万个以内是精确的。超过之后,工具只保留出现最多的 5 万个值,不同值的个数和高频值都是近似值。重复行的计数在见到 50 万个不同的行之前是精确的;之后就不再报告。

大文件与数据透视表的限制

25 MB、10 万行、250 列或 200 万个单元格以内的文件可以交互式分析。不超过 2 万行时,调整布局后数据透视表会立即更新;超过时,请点击 计算数据透视表。更大的文件以流式方式读取:对整个文件计算 会在后台线程中分块读取文件,对每一行做透视,而不是只用预览中的行。列概况对大文件也是同样的处理方式;SQL 标签页则要求文件在交互处理上限以内。

一张数据透视表最多可有 2 万个行分组、200 个列分组,完成后的表格最多 100 万个单元格;计算中位数和非重复计数时,内存中最多保留 400 万个值。超出任何一项上限时,会给出指明该上限的错误,而不是一张被截断的表格。页面上显示前 500 行和 60 个值列,下载的内容包含整张表。分析在当前标签页中进行,CSV 文件不会发送到任何服务器。

示例:按地区和月份汇总金额

6 条订单,其中一条的金额为空,另一条是 n/a。布局把 region 放在行、month 放在列,并设置两个值:amount 的求和与 customer 的非重复计数。下面是下载得到的 CSV。n/a 不计入求和,并会单独提示;总计中的客户数是 4 个不同的客户,而不是两个月份列的 2 + 3,因为 C02 在两个月都下过单。

CSV
order_id,month,region,customer,amount
001041,2026-01,North,C01,19.90
001042,2026-01,South,C02,4.50
001043,2026-01,North,C01,
001044,2026-02,North,C03,19.90
001045,2026-02,South,C02,120.00
001046,2026-02,South,C04,n/a
下载的数据透视表(CSV)
region,2026-01 · Sum of amount,2026-01 · Distinct values of customer,2026-02 · Sum of amount,2026-02 · Distinct values of customer,Total · Sum of amount,Total · Distinct values of customer
North,19.9,1,19.9,1,39.8,2
South,4.5,1,120,2,124.5,2
Grand total,24.4,2,139.9,3,164.3,4

常见问题

为什么总计的平均值不等于上面各行平均值的平均?

总计是根据文件中的原始行重新计算的。订单多的组在总平均值中的权重比订单少的组大,所以直接对各组平均值再求平均是不对的;中位数和非重复计数也是同样的道理。

结果能作为 Excel 数据透视表打开吗?

下载的 XLSX 是一张普通工作表,里面是完成的表格及其分类汇总和总计,并不是可交互的 Excel 数据透视表。要调整结构,请在这里修改布局后重新下载。

为什么列概况中的标准差与 Excel 的 STDEV.P 不同?

列概况报告的是样本标准差(除以 n − 1),与 Excel 和 Google 表格中的 STDEV.S 一致。STDEV.P 除以 n,在小样本上得到的值更小。

标准与参考资料