pandas 分类字段统计

579 字
3 分钟
pandas 分类字段统计

pandas 分类字段统计#

分类字段统计是理解数据分布最快的方法。一个 value_counts 就能看到类别是否集中、是否有拼写问题、是否存在空值。

但在统计前要先清洗文本,否则“北京”“北京 ”和“beijing”可能被当成三个类别。

基础统计#

counts = df["city"].value_counts(dropna=False)
ratio = df["city"].value_counts(normalize=True, dropna=False)
print(counts.head(20))
print((ratio * 100).round(2).head(20))

dropna=False 可以把缺失值也统计出来,适合数据质量检查。

统计前清洗#

df["city_clean"] = (
df["city"]
.astype("string")
.str.strip()
.str.replace("市", "", regex=False)
)
print(df["city_clean"].value_counts(dropna=False).head(20))

具体替换规则要根据业务来,不要为了合并类别而把真实差异抹掉。

多字段分类#

summary = (
df.groupby(["city_clean", "level"], dropna=False)
.size()
.reset_index(name="count")
.sort_values("count", ascending=False)
)
print(summary.head(20))

怎么看结果#

  • 是否有明显的空值或未知类别。

  • 是否有同义类别被拆开。

  • 头部类别是否过度集中。

  • 长尾类别是否需要合并为“其他”。

实战复盘#

复用《pandas 分类字段统计》时,不要只复制代码块。先把自己的字段名、数据口径和异常规则写出来,再替换示例里的列名。pandas 的函数很通用,但业务字段的含义不能自动迁移。

每次处理完成后,我会抽样看几条原始记录和处理后记录。尤其是日期、金额、分类字段,机器统计和肉眼抽查要一起做,才能发现格式看似正常但含义错位的问题。

这类文章后续可以继续补充真实小表格作为输入示例。输入、处理、输出三者都出现,教程才不会变成只解释 API。

最小验收样例#

验收《pandas 分类字段统计》时,我会手写一个三到五行的小 DataFrame:一行正常数据,一行缺失或异常数据,一行边界数据。先让示例在小表上跑通,再换成完整数据集。

小表的好处是结果可以人工计算。只要人工结果和 pandas 输出对不上,就说明代码逻辑或字段口径还没想清楚。这个过程比直接在大表上调试更可靠。

小结#

分类统计看似简单,但它往往最早暴露数据质量问题。先清洗再统计,结果才有解释价值。

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

pandas 分类字段统计
https://blog.tjcheng.cn/posts/backfill/2026-05-21/pandas-value-counts-note/
作者
TengJinCheng
发布于
2026-05-21
许可协议
CC BY-NC-SA 4.0
Profile Image of the Author
TengJinCheng
Hello, I'm Teng.
公告
欢迎来到TengJinCheng工作铺!
音乐
封面

音乐

暂未播放

0:000:00
暂无歌词
分类
标签
站点统计
文章
157
分类
7
标签
114
总字数
109,939
运行时长
0 天
最后活动
0 天前
站点信息
构建平台
Local
博客版本
Firefly v6.13.4
文章许可
CC BY-NC-SA 4.0

文章目录