使用 pivot_table 创建交叉表
汇总两个维度的数据
使用 pivot_table 创建交叉表 是 CoddyKit 上的免费 Data Science Academy 课时。 这是第 2 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Data Science Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Data Science Academy 课程共包含 4 节课。
从长行到网格
当您想要按类别汇总时,pivot_table可以将整洁的长格式行转换为清晰的二维网格。🔄
三个关键参数
每个数据透视表都需要三个角色:哪一列成为索引,哪一列成为列标签,以及哪些值用于填充单元格。
df.pivot_table(index='region',
columns='month',
values='sales')默认会进行聚合
如果多行落入同一个单元格,pivot_table 会计算它们的平均值。默认的聚合函数是均值,而不是简单复制。
选择聚合方式
使用聚合函数参数替换计算方式。使用 sum 计算总和,使用 count 计数,或使用 max 找出每个单元格中的最大值。
df.pivot_table(index='region',
values='sales',
aggfunc='sum')一次执行多种聚合
向聚合函数参数传入列表,即可同时获得多种摘要。一次调用就能并排返回均值和计数。
df.pivot_table(values='sales',
aggfunc=['mean', 'count'])填充空单元格
缺失的组合会显示为 NaN。设置填充值,即可用零或其他合理的默认值替换这些空缺。
df.pivot_table(index='region',
columns='month',
fill_value=0)添加行总计和列总计
将边际汇总设置为 True 后,pivot_table 会在表格边缘添加包含总计的 All 行和列。
df.pivot_table(index='region',
margins=True)按多个键分组
向索引或列传入列表,即可嵌套类别。结果会获得一个MultiIndex,整齐地堆叠各个分组。
df.pivot_table(index=['region', 'store'],
values='sales')pivot 与 pivot_table
普通 pivot 要求索引和列标签的组合唯一,无法进行聚合。只要可能出现重复项,就应使用pivot_table。
读取交叉表
在结果中,根据行标签和列标签定位一个单元格,即可一眼读取准确的类别组合。
还原为扁平表格
透视结果仍然是一个 DataFrame。调用reset_index,即可将其标签还原为普通列,以便导出。
summary.reset_index()快速检查
让我们检查一下您对 pivot_table 的熟练程度。
回顾:轻松制作交叉表
您使用索引、列、值和聚合函数参数构建了网格。接下来,您将反向操作,使用melt把宽格式数据转换回长格式。🎯
常见问题解答
「使用 pivot_table 创建交叉表」课时是免费的吗?
是的 — 「使用 pivot_table 创建交叉表」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Data Science Academy 课程的其余内容,请升级到 CoddyKit PRO。 Data Science Academy 课程共包含 4 节课。
「使用 pivot_table 创建交叉表」这节课中我会学到什么?
汇总两个维度的数据 你通过在浏览器中直接运行的动手代码来练习 Data Science Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Data Science Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Data Science Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 2 节课,共 4 节。
「使用 pivot_table 创建交叉表」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Data Science Academy 课中编写并运行代码吗?
能。每节 Data Science Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- 宽表与长表,以及整洁数据
- 使用 pivot_table 创建交叉表
- 使用 melt 转成长表
- stack、unstack 和 MultiIndex