数理统计——AQI分析

一、AQI分析与预测

1.1 背景信息

AQI(Air Quality Index)是指空气质量指数,用来衡量空气清洁或者污染的程度,值越小,表示空气质量越好。空气污染指数划分为0-50、51-100、101-150、151-200、201-300和大于300六档,对应于空气质量的六个等级,指数越大,级别越高,就说明污染越严重,对人体健康的影响也越大。(近段时间,空气质量愈发倍受关注,因此在此作一个专题分析)

1.2 分析目标/任务

期望通过运用数据分析的相关分析,对全国城市质量进行研究和分析,希望解决下面这些问题:

  • 哪些城市的空气质量较好/较差【描述性统计分析】
  • 空气质量在地理位置分布上,是否具有一定分布规律【描述性统计】
  • 临海城市的空气质量是否有别于内陆城市【推断性统计分析】
  • 空气质量受那些因素的影响【相关系数分析】
  • 全国空气质量普遍处于何种水平【区间估计】
  • 怎样预测一个城市的空气质量【统计建模】

1.3 数据集概览

获取了2015年的空气质量指数集,该数据集包含全国主要城市的相关数据以及空气质量指数。
在这里插入图片描述

二、数据分析流程

2.1基本流程

在进行数据分析之前,需要清除数据分析的基本流程:

  • 宏观明确需求与目的,将目标拆解
  • 数据采集:
    ——内部数据
    ——购买数据
    ——爬取数据
    ——调查问卷
    ——其他收集
  • 数据预处理:
    ——数据整合:
    ————横向整合
    ————纵向整合
    ——数据清洗:
    ————缺失值
    ————异常值
    ————重复值
    ——数据转换:
  • 数据分析:
    ——描述分析
    ——推断分析
    ——数据建模:
    ————特征工程
    ————超参数调整
    ——数据可视化
  • 编写报告

2.2理解流程

可以把这个过程形象化成做菜。

三、读取数据

3.1导入相关的库

导入需要的库,进行一些初始化设置。

#1、数据读取
#导入相关库
import numpy as np 
import pandas as pd 
import matplotlib.pyplot as plt
import seaborn as sns 
import warnings
#进行初始化设置
sns.set(style="darkgrid")
plt.rcParams["font.family"]="SimHei"
plt.rcParams["axes.unicode_minus"]=False
warnings.filterwarnings("ignore")

3.2加载数据集

#2、加载数据集
data=pd.read_csv("data-Copy1.csv")
print(data.shape)
#概览数据大致情况
data.head()

输出:(325, 12)

在这里插入图片描述

四、数据清洗

4.1缺失值

(1)如何查看缺失值呢——info、isnull

1、使用info()

#数据清洗之缺失值查看
data.info()

输出:
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 325 entries, 0 to 324
Data columns (total 12 columns):
City                       325 non-null object
AQI                        325 non-null int64
Precipitation              321 non-null float64
GDP                        325 non-null float64
Temperature                325 non-null float64
Longitude                  325 non-null float64
Latitude                   325 non-null float64
Altitude                   325 non-null float64
PopulationDensity          325 non-null int64
Coastal                    325 non-null object
GreenCoverageRate          325 non-null float64
Incineration(10,000ton)    325 non-null float64
dtypes: float64(8), int64(2), object(2)
memory usage: 30.5+ KB

2、使用isnull

#数据清洗之缺失值查看
data.isnull().sum(axis=0)
输出:
City                       0
AQI                        0
Precipitation              4
GDP                        0
Temperature                0
Longitude                  0
Latitude                   0
Altitude                   0
PopulationDensity          0
Coastal                    0
GreenCoverageRate          0
Incineration(10,000ton)    0
dtype: int64

从两种方法中我们都能发现,在Percipitation(降雨量)这个变量上有缺失值。因此我们需要对此进行处理。

(2)缺失值处理

  • 删除缺失值(适用于缺失数量很少的情况)

  • 填充缺失值:
    ——数值变量:采用均值填充、中数填充
    ——类别变量:采用众数填充,或者单独作为一个类别;

  • 额外的数据处理说明
    ——缺失值小于20%,直接填充。
    ——缺失值在20-80%,填充变量之后,同时增加一列来标记该列是否缺失,参与后续建模。
    ——缺失值大于80%,不适用原始列,而是增加一列,标记该列缺失,参与后续建模。
    我们可以看一下数据分布状况:

#数据分布
print(data["Precipitation"].skew())
sns.distplot(data["Precipitation"].dropna())
输出:偏度——0.28491574964838473

在这里插入图片描述

填充数据:

#数据填充
data.fillna({
   "Pre
  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值