如何使用Pandas计算指定列数值高于30的行占总数据行数的百分比
Pandas 实现统计指定列数值大于30的行占比
核心逻辑
Pandas 中布尔Series的mean()方法可以直接计算符合条件的行占比,无需手动筛选计数,处理大型数据集时效率更高。
实现步骤
- 首先确认你的数据集已经读取为Pandas DataFrame对象,假设变量名为
df,下文示例中用target_col代指你需要统计的指定列,使用时替换为实际列名即可 - 可选前置处理:如果指定列可能存在非数值类型数据,先做类型转换,避免后续判断报错:
import pandas as pd # 转换为数值类型,无法转换的内容会设为空值NaN df['target_col'] = pd.to_numeric(df['target_col'], errors='coerce') # 如果需要排除空值行再统计,先过滤空值 df = df[df['target_col'].notna()]
- 核心统计代码:
# 得到小数形式的占比,比如0.35对应35% ratio = (df['target_col'] > 30).mean() # 转换为带百分号、保留2位小数的字符串格式,匹配预期输出 result = f"{ratio * 100:.2f}%" print(result)
示例验证
用测试数据验证效果:
# 构造测试数据集 df = pd.DataFrame({ 'id': range(1,7), 'target_col': [12,45,32,28,50,18] }) # 执行统计 ratio = (df['target_col'] > 30).mean() print(f"{ratio*100:.2f}%") # 输出结果:50.00% # 符合计算逻辑:6行中有3行数值大于30,占比50%
内容的提问来源于stack exchange,提问作者Kamikaze K
相关产品推荐
相关产品推荐

