Pandas | value_counts() 实战技巧与高级应用

1. 别只数数了,value_counts() 比你想象的更强大

如果你用Pandas处理数据,那value_counts()这个函数肯定不陌生。新手朋友可能觉得它就是个“计数器”,用来看看一列数据里,每个值出现了几次。比如,统计一下用户数据里“城市”这一列,看看北京、上海、深圳各有多少用户,这确实是它的基本功。但说实话,如果只把它当计数器用,那可真是大材小用了,就像用瑞士军刀只开啤酒瓶盖一样。

我自己在数据分析项目里摸爬滚打这么多年,处理过各种奇奇怪怪的数据集,从电商销售记录到物联网传感器日志。我发现,value_counts()远不止是“数数”。它其实是你在数据清洗、探索性分析(EDA)甚至特征工程阶段,一个快速又直观的“侦察兵”。它能帮你一眼看穿数据的分布:哪些值是主流?有没有异常多的重复值?数据缺失严重吗?类别是不是极度不平衡?这些问题的答案,往往一个value_counts()就能给你初步的线索。

它的核心是返回一个Series对象,索引是原数据列中的唯一值,值是对应的频数。默认情况下,它已经帮你按频数从高到低排好序了,并且自动跳过了缺失值(NaN),非常贴心。对于刚开始接触数据分析的朋友来说,这个函数几乎是零门槛,但它的高级玩法却能帮你解决不少复杂场景下的统计问题。接下来,我就结合几个实际踩过的坑和总结的技巧,带你重新认识这个老朋友。

2. 从基础到熟练:你必须掌握的参数与技巧

2.1 核心参数拆解:不只是排序和归一化

我们先来把value_counts()的常用参数彻底搞明白。很多教程只讲sortascending,其实另外几个参数在特定场景下才是“神器”。

import pandas as pd

# 假设我们有一个简单的数据集
data = {'产品': ['A', 'B', 'A', 'C', 'B', 'B', 'A', None, 'C', 'A']}
df = pd.DataFrame(data)

normalize:从“数数”到“看比例” 这个参数我用的频率极高。默认是False,返回的是绝对次数。设为True后,返回的是相对频率(比例)。这在分析构成时特别有用。

# 基础计数
print(df['产品'].value_counts())
# 输出:
# A    4
# B    3
# C    2
# Name: 产品, dtype: int64

# 标准化,看占比
print(df['产品'].value_counts(normalize=True))
# 输出:
# A    0.444444
# B    0.333333
# C    0.222222
# Name: 产品, dtype: float64

看到区别了吗?标准化后,所有项的比例之和为1(忽略NaN)。我经常用这个快速计算市场份额、用户行为偏好占比。比如,一眼就能看出产品A占了近44.4%的销量,这比单纯说“卖了4个”更有分析价值。

dropna:决定是否把缺失值当“透明人” 默认是True,也就是不统计NaN。但有时候,缺失值本身就是一种重

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值