(python)数据分析-描述性统计

前言

在进行更深入的数据分析之前,描述性统计是一种有效的初步探索工具。它可以帮助发现数据中的异常值。下面,主要会演示如何对数据进行初步的分析,通过描述性统计了解数据的特征.

目录

概念

下面操作用到的第三方库

数据来源

处理逻辑

代码实现

1.获取数据

2.描述性统计

3.频率分布图

3.百分比分布图

4.箱型图

总结


概念

描述性统计可以快速地为数据分析人员提供数据集的整体概况。通过计算集中趋势的指标(如均值、中位数、众数),可以了解数据的中心位置,大致知道数据集中在哪个数值附近。

在科学研究中,描述性统计可以帮助研究者初步了解实验数据的特征,为进一步的假设检验和建模提供基础。

下面操作用到的第三方库

  • matplotlib
  • numpy
  • pandas
  • sklearn

数据来源

sklearn)本身是一个用于机器学习的 Python 库,提供了一些数据集,其中包含了鸢尾花数据集(Iris dataset)

处理逻辑

  1. 先通过sklearn库,获取鸢尾花数据集;
  2. 利用pandas库的describe()函数生成描述性统计信息,它可以快速地对数据进行初步分析,提供关于数据分布、中心趋势和离散程度等方面的信息;
  3. 采用频率分布对鸢尾花的花萼宽度进行分析,了解分布特点;
  4. 采用百分比分布对鸢尾花的花瓣长度进行分析,了解分布特点;
  5. 采用箱型图对鸢尾花的花瓣宽度进行分析,了解分布特点;

代码实现

1.获取数据

python 复制代码
# 加载鸢尾花数据集
iris = load_iris()
X = iris.data
df = pd.DataFrame(X, columns=iris.feature_names)
print(df.columns)

2.描述性统计

python 复制代码
def iris_descriptive_table(df):
    # 使用 describe 函数进行描述性统计
    stats = df.describe()
    # 保留2位小数
    stats = stats.round(2)

    fig, ax = plt.subplots(figsize=(8.8, 4))

    # 隐藏坐标轴
    ax.axis('off')

    # 创建表格
    table = Table(ax, bbox=[0, 0, 1, 1])
    # 设置表格行数和列数
    nrows = stats.shape[0]
    ncols = stats.shape[1]

    # 设置表格标题行
    for j in range(ncols):
        table.add_cell(0, j + 1, width=1 / len(stats.columns), height=1 / len(stats.index), text=stats.columns[j],
                       facecolor='lightblue')

    # 设置表格列标题
    for i in range(nrows):
        table.add_cell(i + 1, 0, width=1 / len(stats.columns), height=1 / len(stats.index), text=stats.index[i],
                       facecolor='lightblue')

    # 填充表格内容
    for i in range(nrows):
        for j in range(ncols):
            val = stats.iloc[i, j]
            table.add_cell(i + 1, j + 1, width=1 / len(stats.columns), height=1 / len(stats.index),
                           text=str(stats.iloc[i, j]))

    ax.add_table(table)
    plt.title("Iris Describe Table")
    # 保存图像
    # plt.savefig('iris_descriptive_stats_table.png', dpi=300)
    # plt.close()
    plt.show()

3.频率分布图

python 复制代码
def iris_frequency_distribution(df):
    sepal_widths = df["sepal width (cm)"]

    # 计算频数分布
    hist, bin_edges = np.histogram(sepal_widths, bins=10)

    # 绘制频数分布图
    plt.bar(bin_edges[:-1], hist, width=np.diff(bin_edges), align='edge')
    plt.xlabel('Sepal Width')
    plt.ylabel('Frequency')
    plt.title('Frequency Distribution of Iris Sepal Width')
    # 保存图像
    # plt.savefig('iris_frequency_distribution.png', dpi=300)
    # plt.close()
    plt.show()

3.百分比分布图

python 复制代码
def iris_percentage_distribution(df):
    petal_lengths = df["petal length (cm)"]
    # 计算频数分布
    hist, bin_edges = np.histogram(petal_lengths, bins=10)

    # 计算频率分布
    frequencies = hist / len(petal_lengths)

    # 将频率转换为百分数
    percentages = frequencies * 100

    # 绘制频率分布图(以百分数显示 y 轴)
    plt.bar(bin_edges[:-1], percentages, width=np.diff(bin_edges), align='edge')
    plt.xlabel('Petal Length')
    plt.ylabel('Percentage(%)')
    plt.title('Percentage Distribution of Iris Petal Length')
    # plt.savefig('iris_percentage_distribution.png', dpi=300)
    # plt.close()
    plt.show()

4.箱型图

python 复制代码
def iris_boxplot(df):
    petal_widths = df["petal width (cm)"]
    # 绘制箱型图
    plt.boxplot(petal_widths)
    plt.xlabel('Iris')
    plt.ylabel('Petal Width')
    plt.title('Box Plot of Iris Petal Width')
    # plt.savefig('iris_boxplot.png', dpi=300)
    # plt.close()
    plt.show()

总结

在不进行复杂的统计分析的情况下,快速提供数据的基本特征。这对于在数据分析的早期阶段了解数据的性质非常有用。

相关推荐
鹏多多.4 小时前
flutter-使用device_info_plus获取手机设备信息完整指南
android·前端·flutter·ios·数据分析·前端框架
芦骁骏20 小时前
自动处理考勤表——如何使用Power Query,步步为营,一点点探索自定义函数
数据分析·excel·powerbi
柑木1 天前
隐私计算-SecretFlow/SCQL-SCQL的两种部署模式
后端·安全·数据分析
计算机源码社1 天前
分享一个基于Hadoop的二手房销售签约数据分析与可视化系统,基于Python可视化的二手房销售数据分析平台
大数据·hadoop·python·数据分析·毕业设计项目·毕业设计源码·计算机毕设选题
楚韵天工1 天前
基于多分类的工业异常声检测及应用
人工智能·深度学习·神经网络·目标检测·机器学习·分类·数据挖掘
Kay_Liang1 天前
从聚合到透视:SQL 窗口函数的系统解读
大数据·数据库·sql·mysql·数据分析·窗口函数
我要学习别拦我~1 天前
读《精益数据分析》:黏性(Stickiness)—— 验证解决方案是否留住用户
经验分享·数据分析
davawang1 天前
程序自动化vs人工手动处理
数据库·数据分析·企业文化
思通数据1 天前
AI视频监控:重构安防行业智能化新生态
人工智能·安全·目标检测·机器学习·计算机视觉·重构·数据挖掘
计算机源码社2 天前
分享一个基于Hadoop+spark的超市销售数据分析与可视化系统,超市顾客消费行为分析系统的设计与实现
大数据·hadoop·数据分析·spark·计算机毕业设计源码·计算机毕设选题·大数据选题推荐