【pandas】统计指标

该篇博客详细介绍了如何使用Pandas进行数据统计,包括最大值、最小值、均值、中位数、方差、标准差、非空数据计数、分位数、众数等统计指标的计算,并展示了如何对非数值型数据进行描述性统计。同时,还展示了如何将非数值型数据转换为类别型数据,并展示了统计描述的结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

加载数据

import pandas as pd

data = pd.read_excel('day06/data/meal_order_detail.xls', sheet_name=0)
print('data:\n', data)
print('columns:\n', data.columns)
# 查看数据类型
print('dtypes:\n', data.dtypes)

在这里插入图片描述

统计数据

常用数据

print('统计最大值:\n', data.loc[:, 'amounts'].max())
print('统计最小值:\n', data.loc[:, 'amounts'].min())
print('统计均值:\n',   data.loc[:, 'amounts'].mean())
print('统计中位数:\n', data.loc[:, 'amounts'].median())
print('最大值位置:\n', data.loc[:, 'amounts'].idxmax())
print('最小值位置:\n', data.loc[:, 'amounts'].idxmin())
print('统计方差:\n',   data.loc[:, 'amounts'].var())
print('统计标准差:\n', data.loc[:, 'amounts'].std())

在这里插入图片描述

统计的非空数据的数量(count)

空数据为用 NaN 占位的数据

print('统计count:\n', data.loc[:, 'amounts'].count())
print('统计 cost的count:\n', data.loc[:, 'cost'].count())

在这里插入图片描述

分位数(quantile)

quantile方法有一个q参数,用0~1指定要取出的分位数,可使用数组取出多个数,默认为0.5,即中位数。

print('统计quantile:\n', data.loc[:, 'amounts'].quantile()

在这里插入图片描述

求四分位数

四分位数即:最小值、下四分位数、中位数、上四分位数、最大值 ——5个数将数据分为4部分

print('统计quantile:\n', data.loc[:, 'amounts'].quantile(q=[0, 0.25, 0.5, 0.75, 1]))

在这里插入图片描述

众数(mode)

众数可能有多个,返回值为Series结构

print('统计众数:\n', data.loc[:, 'amounts'].mode())

在这里插入图片描述

0 是行索引 35是众数的值

统计描述(describe)

使用describe方法返回8种结果,分别为:

  • 非空数据的数目
  • 均值
  • 标准差
  • 四分位数(最小值、下四分位数、中位数、上四分位数、最大值)
print('统计描述:\n', data.loc[:, 'amounts'].describe())

在这里插入图片描述

对非数值型数据的统计指标

print('统计众数:\n', data.loc[:, 'dishes_name'].mode())
# 返回4种结果:非空数据的数目、去重之后所剩下的类别的数目、众数、众数出现的次数
print('统计描述:\n', data.loc[:, 'dishes_name'].describe())

在这里插入图片描述

对非数值型使用统计描述将返回4种结果:

  1. 非空数据的数目
  2. 去重之后所剩下的类别的数目
  3. 众数
  4. 众数出现的次数

转化为 类别型(category–非数值的)

# 可以将指定的列转化为 类别型(category---非数值的)
data.loc[:, 'dishes_name'] = data.loc[:, 'dishes_name'].astype('category')
print('data:\n', data.dtypes)

print('统计众数:\n', data.loc[:, 'dishes_name'].mode())
print('统计描述:\n', data.loc[:, 'dishes_name'].describe())

在这里插入图片描述

### 使用Pandas实现数据区间分布统计 为了完成数据区间分布统计的任务,`pandas.cut()` 方法是一个非常有效的工具。此方法允许定义自定义区间,并将连续型变量转换成分类变量,从而便于进一步的统计分析[^1]。 下面展示了一个具体的例子来说明如何利用 `pandas.cut()` 进行数据区间划分并计算各区间内的统计数据: ```python import pandas as pd import numpy as np # 创建样本数据框 df = pd.DataFrame({ 'value': np.random.uniform(0, 200, size=200), }) # 定义区间的边界 bins = [0, 10, 20, 50, 80, 100, 120, 140, 160, 180, 200] # 利用 cut 函数创建一个新的列代表各个观测值所属的区间 df['interval'] = pd.cut(df['value'], bins=bins) # 对不同区间内 value 的数量进行计数 distribution_count = df.groupby('interval').size() print(distribution_count) ``` 上述代码片段展示了如何基于给定的数据集构建一个新列 `interval` 来表示原始数值所在的区间范围;随后通过对这个新的分类字段执行分组聚合操作,实现了对每个区间内元素的数量统计[^5]。 对于更加复杂的统计需求,比如求取平均值或其他描述性统计量,则可以通过调整 `.groupby().agg()` 中的方法参数轻松达成目标。例如,如果想要获得每个区间内部所有数值的均值,只需修改最后一行为如下所示的形式即可: ```python average_value_per_bin = df.groupby('interval')['value'].mean() print(average_value_per_bin) ``` 此外,还可以借助于其他内置函数如 `count()`, `sum()`, 或者传递字典形式指定多个汇总指标来进行多维度的统计分析[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

胡桃の壶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值