汽车分析,随时间变化的燃油效率

chatgpt/2023/9/27 7:00:55

简述

今天我们来分析一个汽车数据。
数据集由以下列组成:

  • 名称:每辆汽车的唯一标识符。
  • MPG:燃油效率,以英里/加仑为单位。
  • 气缸数:发动机中的气缸数。
  • 排量:发动机排量,表示其大小或容量。
  • 马力:发动机的功率输出。
  • 重量:汽车的重量。
  • 加速:提高速度的能力,以秒为单位。
  • 车型年份:汽车模型的制造年份。
  • 原产地:每辆汽车的原产地国家或地区。
    总的来看数据内容不是很多,分析起来还是很容易的。

目标

这个项目的主要目标是了解汽车的不同特性之间的关系,以及它们如何影响燃油效率(MPG -每加仑英里数)。该项目还旨在发现数据中任何有趣的趋势或模式,从而为汽车行业提供见解。

数据清理和预处理

# 导入库
import pandas as pd
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = 'SimHei' ## 设置中文显示from scipy.stats import f_onewayfrom scipy.stats import ttest_ind# 导入数据
df = pd.read_csv('D:桌面\\Automobile.csv',encoding='gbk')

在这里插入图片描述

检查所有列的数据类型

在这里插入图片描述

检查缺失值

在这里插入图片描述

箱型图

df['马力'] = df['马力'].fillna(df['马力'].mean())
# 数字列列表
num_cols = ['mpg', '气缸数', '排量', '马力', '重量', '加速', '车型年份']for col in num_cols:plt.figure(figsize=(8, 4))sns.boxplot(df[col])plt.title(f'{col}箱线图 ')plt.show()

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

处理 ‘马力’ 中的异常值

首先,计算“马力”(horsepower)的四分位距(IQR)

Q1_hp = df['马力'].quantile(0.25)
Q3_hp = df['马力'].quantile(0.75)
IQR_hp = Q3_hp - Q1_hp

定义异常值的上限和下限。

lower_bound_hp = Q1_hp - 1.5 * IQR_hp
upper_bound_hp = Q3_hp + 1.5 * IQR_hp

将异常值限制在一定范围内。

df['马力'] = df['马力'].clip(lower=lower_bound_hp, upper=upper_bound_hp)

重复这个过程,针对“重量”

Q1_weight = df['重量'].quantile(0.25)
Q3_weight = df['重量'].quantile(0.75)
IQR_weight = Q3_weight - Q1_weightlower_bound_weight = Q1_weight - 1.5 * IQR_weight
upper_bound_weight = Q3_weight + 1.5 * IQR_weightdf['重量'] = df['重量'].clip(lower=lower_bound_weight, upper=upper_bound_weight)

特征工程

创建一个新的特征’hp_to_weight’,它是马力与重量的比率。

df['hp_to_weight'] = df['马力'] / df['重量']

检查前几行 DataFrame 以确认更改。


df.head()

在这里插入图片描述

生成数值变量的描述性统计数据。


df.describe()

在这里插入图片描述

数据可视化

生成数值变量的直方图。


num_cols = ['mpg', '气缸数', '排量', '马力', '重量', '加速', '车型年份', 'hp_to_weight']for col in num_cols:plt.figure(figsize=(8, 4))sns.histplot(df[col], kde=True)plt.title(f' {col}直方图')plt.show()

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

生成分类变量的条形图


plt.figure(figsize=(8, 4))
sns.countplot(x='原产地', data=df)
plt.title('原产地条形图')
plt.show()

在这里插入图片描述

双变量分析

为成对的数值变量生成散点图


num_cols = ['mpg', '气缸数', '排量', '马力', '重量', '加速', '车型年份', 'hp_to_weight']sns.pairplot(df[num_cols])
plt.show()

在这里插入图片描述

数值变化的相关矩阵

#计算数值变量之间的相关系数。
corr_matrix = df[num_cols].corr()# 显示相关矩阵
sns.heatmap(corr_matrix, annot=True, cmap='coolwarm')
plt.title('数值变化的相关矩阵')
plt.show()

在这里插入图片描述

group1 = df[df['原产地'] == 'usa']['mpg']
group2 = df[df['原产地'] == 'europe']['mpg']
group3 = df[df['原产地'] == 'japan']['mpg']# 进行单因素方差分析。
f_stat, p_value = f_oneway(group1, group2, group3)# 输出  F-statistic 和 p-value
print(f'F-statistic: {f_stat}')
print(f'p-value: {p_value}')

在这里插入图片描述

多变量分析

生成一组变量的配对图。

subset_cols = ['mpg', '马力', '重量', '原产地']
sns.pairplot(df[subset_cols], hue='原产地')
plt.show()

在这里插入图片描述

时间分析

# 计算每个型号年份的平均每加仑英里数。
avg_mpg_by_year = df.groupby('车型年份')['mpg'].mean()# 绘制随着时间变化的平均每加仑英里数。
plt.figure(figsize=(10, 6))
sns.lineplot(data=avg_mpg_by_year)
plt.title('平均每加仑英里数按车型年份分类')
plt.xlabel('车型年份')
plt.ylabel(' MPG平均值')
plt.show()

在这里插入图片描述

假设检验

# 删除具有缺失“mpg”值的行。
df = df.dropna(subset=['mpg'])# 将数据分成两组。
group1 = df[df['车型年份'] < 75]['mpg']  # 1975年之前制造的汽车
group2 = df[df['车型年份'] >= 75]['mpg']  # 1975年之后制造的汽车# 进行双样本t检验。
from scipy.stats import ttest_ind
t_stat, p_value = ttest_ind(group1, group2)# 输出 the t-statistic the p-value
print(f't-statistic: {t_stat}')
print(f'p-value: {p_value}')

在这里插入图片描述

结论

  • 随着时间的推移,燃油效率:平均每加仑英里数(mpg)似乎随着时间的推移而增加,这表明汽车变得更加省油。这可能是由于技术的进步和汽车制造业对燃油效率的日益关注。

  • 马力和重量:马力和重量之间似乎存在正相关关系,表明较重的汽车往往拥有更强劲的发动机。然而,马力和重量似乎都与mpg负相关,这表明较重的汽车和发动机功率更大的汽车往往更省油。

  • 产地和燃油效率:我们的假设检验表明,不同产地的汽车平均每加仑汽油行驶里程有显著差异。这表明汽车的生产地区可能会对其燃油效率产生影响。

  • 新功能-马力重量比:我们创造的新功能,马力重量比,可能会为这些变量和mpg之间的关系提供不同的结果

题外话

我整理了一些资源,如果你也对Python和大数据感兴趣,关注下方公众号免费提取资料。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.exyb.cn/news/show-5313062.html

如若内容造成侵权/违法违规/事实不符,请联系郑州代理记账网进行投诉反馈,一经查实,立即删除!

相关文章

回归预测 | MATLAB实现SO-CNN-BiLSTM蛇群算法优化卷积双向长短期记忆神经网络多输入单输出回归预测

回归预测 | MATLAB实现SO-CNN-BiLSTM蛇群算法优化卷积双向长短期记忆神经网络多输入单输出回归预测 目录 回归预测 | MATLAB实现SO-CNN-BiLSTM蛇群算法优化卷积双向长短期记忆神经网络多输入单输出回归预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 Matlab实…

基于Flink CDC实时同步数据(MySQL到MySQL)

一、环境 jdk8Flink 1.16.1&#xff08;部署在远程服务器&#xff1a;192.168.137.99&#xff09;Flink CDC 2.3.0MySQL 8.0&#xff08;安装在本地&#xff1a;192.168.3.31&#xff09; &#xff08;安装部署过程略&#xff09; 二、准备 准备三个数据库&#xff1a;flink…

线性代数的学习和整理2:线性代数的基础知识(整理ing)

目录 0 写在前面的话 网上推荐的线性代数的课程 1 线性代数和矩阵的各种概念 1.1 各种逻辑图 2 关于线性代数入门的各种灵魂发问 2.1 什么是线性&#xff0c;什么是线性相关 &#xff1f; 为什么叫线性变换&#xff1f; 为什么叫线性代数&#xff1f; 2.2 线性代数是人造…

Java面试题(Tomcat与Nginx)

Tomcat 什么是Tomcat&#xff1f; 简单来说是一个运行Java的网络服务器&#xff0c;也是jsp和serlvet的一个容器 Tomcat的缺省端口是多少&#xff0c;怎么修改? conf文件夹下修改server.xml文件 <Connector connectionTimeout"20000" port"8080" p…

SAP abap sql 语句执行无结果

有些情况下&#xff0c;我们的sql语句执行之后&#xff0c;却没有得到结果&#xff0c;可能是因为条件不对 原因是SAP 中se16n看见的值可能经过转换&#xff0c;例如下面的SQL&#xff0c;就会执行失败&#xff0c;因为SH 实际上是WE转换过来的&#xff0c;这时候我们需要点开详…

「教程」如何使用一套代码在多种程序中接入天气预警API

引言 天气预警的重要性不言而喻&#xff0c;在遭受自然灾害和极端天气时&#xff0c;及时获得预警信息可以拯救生命和减少财产损失。如今&#xff0c;随着科技的进步&#xff0c;开发者和企业可以借助天气预警 API 这款强大的服务&#xff0c;将实时预警信息集成到自己的应用中…

NO4 实验四:生成Web工程

1、说明 使用 mvn archetype&#xff1a;generate 命令生成 Web 工程时&#xff0c;需要使用一个专门的 archetype。这个专门生成 Web 工程骨架的 archetype 可以参照官网看到它的用法&#xff1a; 2、操作 注意&#xff1a;如果在上一个工程的目录下执行 mvn archetype&…

【前端】javascript+html+css 家具销售网站(代码+报告)

&#x1f449;博__主&#x1f448;&#xff1a;米码收割机 &#x1f449;技__能&#x1f448;&#xff1a;C/Python语言 &#x1f449;公众号&#x1f448;&#xff1a;测试开发自动化【获取源码商业合作】 &#x1f449;荣__誉&#x1f448;&#xff1a;阿里云博客专家博主、5…
推荐文章