【python】pandas数据统计:了解数据分布

本文主要介绍如何使用df.describe(), df.mean(), df.sum(), df.max(), 和 df.min()

步骤 1: 创建 DataFrame

首先,我们需要创建一个包含一些基本数据的 DataFrame。我们将使用一个假想的销售数据集,其中包括日期、产品ID、销售数量和单价。

import pandas as pd

# 创建数据字典
data = {
    '日期': ['2023-01-01', '2023-01-02', '2023-01-03', '2023-01-04', '2023-01-05'],
    '产品ID': ['A', 'B', 'C', 'D', 'E'],
    '销售数量': [10, 20, 15, 30, 25],
    '单价': [20, 15, 25, 10, 30]
}

# 创建 DataFrame
df = pd.DataFrame(data)

# 转换日期列至日期时间格式
df['日期'] = pd.to_datetime(df['日期'])

# 显示 DataFrame
print(df)

步骤 2: 使用 df.describe()

df.describe() 方法是一个非常强大的工具,可以快速生成数据集的基本统计摘要。它默认只显示数值型列的统计信息,包括计数、平均值、标准差、最小值、分位数(25%, 50%, 75%)和最大值。

# 打印描述性统计
print(df.describe())

# 如果想包括非数值型列,可以使用 include='all'
print(df.describe(include='all'))

步骤 3: 使用 df.mean()

df.mean() 方法计算DataFrame中数值列的平均值。如果DataFrame中只有一列是数值型的,它将返回该列的平均值;如果有多个数值列,它将返回一个Series,其中包含每个数值列的平均值。

# 计算平均销售数量
print(df['销售数量'].mean())

# 计算所有数值列的平均值
print(df.mean())

步骤 4: 使用 df.sum()

df.sum() 方法计算DataFrame中数值列的总和。与df.mean()相似,如果DataFrame中只有一列是数值型的,它将返回该列的总和;如果有多个数值列,它将返回一个Series,其中包含每个数值列的总和。

# 计算销售数量的总和
print(df['销售数量'].sum())

# 计算所有数值列的总和
print(df.sum())

步骤 5: 使用 df.max()df.min()

df.max()df.min() 方法分别用于找到DataFrame中数值列的最大值和最小值。

# 找到销售数量的最大值和最小值
print(df['销售数量'].max())
print(df['销售数量'].min())

# 找到所有数值列的最大值和最小值
print(df.max())
print(df.min())
汇总代码

简单的数据集:

日期产品ID销售数量单价
2023-01-01A1020
2023-01-02B2015
2023-01-03C1525
2023-01-04D3010
2023-01-05E2530

接下来,我们将使用Python和Pandas库来创建这个数据集,并使用上述提到的数据统计方法。

import pandas as pd

# 创建数据字典
data = {
    '日期': ['2023-01-01', '2023-01-02', '2023-01-03', '2023-01-04', '2023-01-05'],
    '产品ID': ['A', 'B', 'C', 'D', 'E'],
    '销售数量': [10, 20, 15, 30, 25],
    '单价': [20, 15, 25, 10, 30]
}

# 创建 DataFrame
df = pd.DataFrame(data)

# 转换日期列至日期时间格式
df['日期'] = pd.to_datetime(df['日期'])

# 打印原始数据
print("原始数据:")
print(df)

# 使用 df.describe()
print("\n描述性统计:")
print(df.describe())

# 使用 df.mean()
print("\n平均销售数量:")
print(df['销售数量'].mean())

print("\n所有数值列的平均值:")
print(df.mean())

# 使用 df.sum()
print("\n销售数量总和:")
print(df['销售数量'].sum())

print("\n所有数值列的总和:")
print(df.sum())

# 使用 df.max() 和 df.min()
print("\n销售数量的最大值和最小值:")
print(df['销售数量'].max(), df['销售数量'].min())

print("\n所有数值列的最大值和最小值:")
print(df.max())
print(df.min())

这段代码将输出以下结果:

原始数据:
        日期 产品ID  销售数量  单价
0 2023-01-01      A        10  20
1 2023-01-02      B        20  15
2 2023-01-03      C        15  25
3 2023-01-04      D        30  10
4 2023-01-05      E        25  30

描述性统计:
         销售数量         单价
count  5.000000  5.000000
mean  18.000000 18.000000
std    7.905694  8.291562
min   10.000000 10.000000
25%   15.000000 15.000000
50%   20.000000 20.000000
75%   25.000000 25.000000
max   30.000000 30.000000

平均销售数量:
18.0

所有数值列的平均值:
销售数量    18.0
单价        18.0
dtype: float64

销售数量总和:
90

所有数值列的总和:
销售数量    90
单价        90
dtype: int64

销售数量的最大值和最小值:
30 10

所有数值列的最大值和最小值:
销售数量    30
单价        30
dtype: int64

销售数量    10
单价         10
dtype: int64
  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值