实验报告1 小费数据分析(包含描述性-数据可视化)

发布于:2024-04-29 ⋅ 阅读:(24) ⋅ 点赞:(0)

实验报告1 小费数据分析

实验内容

小费数据分析

实验思路:读取数据-数据预处理-探索性数据分析(描述性统计分析)-分组分析-可视化分析-特征工程

实验环境工具:VS code

编程语言:python

实验原理:

(用到pandas库的哪些基本概念和方法?这些方法分别是什么作用?)

在上述代码中,我们使用了以下一些pandas的基本概念和方法:

1. 读取数据:

   - pd.read_csv('restaurant_data.csv'): 从CSV文件中读取数据到一个DataFrame对象。

2. 数据预处理:

   - df['tip_pct'] = df['tip'] / df['total_bill']: 创建一个新的列,计算小费率。

3. 探索性数据分析:

   - df.describe(): 输出DataFrame的基本统计指标,如平均值、标准差、最大值等。

   - df.hist(column='total_bill', bins=20): 绘制总账单金额的直方图

   - df.corr(): 计算DataFrame中各列之间的相关系数矩阵。

4. 分组分析:

   - df.groupby('sex')['total_bill'].mean(): 按性别分组,计算每组的平均总账单金额。

   - df.pivot_table(index='sex', columns='smoker', values='total_bill', aggfunc='mean'): 创建一个透视表,展示不同性别和吸烟状况下的平均总账单金额。

5. 可视化分析:

   - sns.scatterplot(x='total_bill', y='tip', data=df): 绘制总账单金额与小费之间的散点图。

   - sns.barplot(x='sex', y='tip_pct', data=df): 绘制性别与小费率之间的条形图。

6. 特征工程:

   - df['is_dinner'] = (df['time'] == 'Dinner').astype(int): 创建一个新的二值特征,表示是否为晚餐。

   - df['party_size'] = df['size']: 将'size'列重命名为'party_size'。

7. 假设检验:

   - from scipy.stats import ttest_ind: 导入独立样本t检验。

   - male_tips = df.loc[df['sex'] == 'Male', 'tip_pct']: 提取男性客户的小费率。

   - female_tips = df.loc[df['sex'] == 'Female', 'tip_pct']: 提取女性客户的小费率。

   - t_stat, p_value = ttest_ind(male_tips, female_tips): 进行t检验,得到p值。

   - print(f'p-value for sex difference in tip percentage: {p_value:.3f}'): 输出p值结果。

通过这些基本的pandas概念和方法,我们能够高效地完成数据加载、预处理、探索性分析、特征工程、模型构建和假设检验等常见的数据分析任务。这些方法为我们提供了强大的数据操作和

实验步骤:

(复制代码至此处,并作必要的注释。)

这个代码示例涵盖了数据预处理、探索性分析、分组分析、可视化、特征工程、模型构建和假设检验等常见的数据分析步骤。

实验结论:

(从对小费数据进行分析之后,得到什么结论?)

#这部分导入了所需的Python,包括Pandas用于数据操作、NumPy用于数值计算、Seaborn用于数据可视化、Matplotlib用于绘图,以及SciPy用于进行统计检验。

import pandas as pd

import numpy as np