本文介绍如何利用 pd.crosstab 将分类变量(如顾客评分)按分组(如门店)展开为多个计数列,高效实现"一店一行、三评计数"的宽表转换,并控制列序与轴标签。 本文介绍如何利用 `pd.crosstab` 将分类变量(如顾客评分)按分组(如门店)展开为多个计数列,高效实现"一店一行、三评计数"的宽表转换,并控制列序与轴标签。在数据分析中,常需将长格式的分类计数数据(如每条记录代表一次门店评分)聚合为宽格式汇总表(如每行代表一家门店,各列分别显示 High / Medium / Low 的出现次数)。Pandas 提供了简洁高效的解决方案------pd.crosstab,它专为构建二维频数交叉表而设计。以下是一个典型场景:原始 DataFrame 包含两列 'Shop' 和 'Review',其中 'Review' 取值为 'High'、'Medium' 或 'Low',但同一店铺可能有多条评分记录。目标是生成新 DataFrame,每行唯一对应一个店铺,并新增三列分别统计该店各评分等级的数量。首先,构造示例数据:import pandas as pddata = \['store1', 'High', 'store1', 'Medium', 'store2', 'Low', 'store2', 'Low']df = pd.DataFrame(data, columns='Shop', 'Review')为确保输出列严格按 'High' → 'Medium' → 'Low' 顺序排列(而非默认字母序),推荐先将 'Review' 列转为有序分类类型(Categorical):df'Review' = pd.Categorical(df'Review', categories='High', 'Medium', 'Low')接着调用 pd.crosstab 进行交叉计数:result = pd.crosstab(df'Shop', df'Review')print(result)输出为: Zeemo AI 一款专业的视频字幕制作和视频处理工具
相关推荐
做运维的阿瑞6 分钟前
mysql数据库视图笔记:创建、修改、删除与适用场景外收内放8 分钟前
08 | 优化篇③ 60 张动作立绘和 50 张特效贴图是怎么进游戏的Seraphina3615 分钟前
DVWA(SQL Injection-High,XSS Reflected-Medium,XSS Stored-Medium)@Mike@16 分钟前
12-数据库学习笔记(五种连接算法)计算机毕业编程指导师21 分钟前
【计算机毕设推荐】基于Hadoop+Django的LLM多维度性能评估分析系统源码 毕业设计 选题推荐 毕设选题 数据分析 机器学习 深度学习AC赳赳老秦24 分钟前
OpenClaw 与 FineBI 联动方案:公开数据自动采集与实时业务分析看板实践Omics Pro28 分钟前
之江实验室NAR|虚拟细胞3阶段训练范式龙亘川32 分钟前
探索智慧文化服务:建设初衷、整体架构、技术支撑、发展现状与实践影响计算机毕业编程指导师35 分钟前
【Python毕设选题推荐】基于Hadoop+Django的奥斯卡奖获奖数据可视化分析系统源码 毕业设计 选题推荐 毕设选题 数据分析 机器学习 深度学习风早爽太37 分钟前
Python 学习笔记:数据库迁移工具 Alembic