python空气质量分析与预测_AQI(空气质量指数)分析与预测(一)
任务说明
期望能够运用数据分析的相关技术,对全国城市空气质量进行研究与分析,希望能够解决如下疑问:
哪些城市的空气质量较好/较差?【描述性统计分析】
空气质量在地理位置上,是否具有一定的规律?【描述性统计分析】
临海城市的空气质量是否有别于内陆城市?【推断统计分析】
空气质量主要受哪些因素影响?【相关系数分析】
全国城市空气质量普遍处于何种水平?【区间估计】
怎样预测一个城市的空气质量?【统计建模】
数据集描述
我们获取了2015年空气质量数据集,该数据集包含全国主要城市的相关数据以及空气质量指数。
读取数据
导入需要的库,同时进行一些初始化的设置
#导入相关库
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')
加载数据集
#加载之后可以使用head/tail/sample等方法查看数据的大致情况
data = pd.read_csv('data.csv')
data.head()
数据清洗
缺失值
1 缺失值探索
我们可以使用如下方法查看缺失值:
info
isnull
data.info()
data.isnull().sum(axis=0) #按列查找空值,并将空值累加
如上两种方式都可以看出,Precipitation列中有四个空值
2 缺失值处理
对于缺失值,我们可以使用如下方式处理:
删除缺失值
仅适用于缺失数量很少的情况
填充缺失值
1 数值变量
▷均值填充
▷中位数填充
2 类别变量
▷众数填充
▷单独作为一个类别
3 额外处理说明
▷缺失值小于20%,直接填充
▷缺失值在20%-80%,填充变量后,同时增加一列,标记该列是否缺失,方便参与后续建模
▷缺失值大于80%,不使用原始列,而是增加一列,标记该列是否缺失,方便参与后续建模
#查看数据分布情况
print(data['Precipitation'].skew()) #查看偏度值,确认左偏或右偏
偏度值大于0,轻微右偏
sns.distplot(data['Precipitation'].dropna())
#distplot中不允许有空值,故使用dropna函数将空值去除
根据偏度值及图像可知,数据呈右偏分布,故使用中位数填充,代码如下:
data['Precipitation'].fillna(data[].median(), inplace=True)
异常值
1 异常值探索
我们可以使用如下方式,发现异常值:
通过describe查看数值信息
3σ方式
使用箱线图辅助
相关异常检测算法
describe方法
调用DataFrame对象的describe方法,可以显示数据的统计信息,不过此种方法仅能作为一种简单的异常探索方式。
data.describe()
3σ方法
根据正态分布的特性,我们可以将3σ之外的数据,视为异常值。我们以GDP为例,首先绘制GDP的分布。
sns.distplot(data['GDP'])
print(data['GDP'].skew()) #偏度值
可以看出此列呈严重的右偏分布,也就是存在部分极大的异常值,可以获取这些异常值。
mean, std = data['GDP'].mean(), data['GDP'].std()
lower, upper = mean-3*std, mean+3*std
print('均值:',mean)
print('标准差:',std)
print('下限:',lower)
print('上限:',upper)
data[(data['GDP']upper)] #获取全部异常信息
箱线图
箱线图是一种常见的异常检测方式。
sns.boxplot(data=data['GDP'])
2 异常值处理
对于异常值,我们可以采用如下的方式处理:
删除异常值
视为缺失值处理
对数转换
使用临界值填充
使用分箱法离散化处理
对数转换
如果数据中存在较大的异常值,我们可以通过取对数来进行转换,这样可以得到一定的缓解。例如,GDP变量呈现右偏分布,我们可以进行取对数转换。
fig, ax = plt.subplots(1, 2)
fig.set_size_inches(15, 5)
sns.distplot(data['GDP'], ax=ax[0])
sns.distplot(np.log(data['GDP']), ax=ax[1])
取对数的方式比较简单,不过也存在一些局限:
取对数只能针对正数操作,不过我们可以通过如下的方式进行转换:
np.sign(X) * np.log(np.abs(X)+1)
适合于右偏分布,不适合左偏分布
使用边界值替换
我们可以对异常值进行“截断”处理,即使用临界值替换异常值。例如:在3σ与箱线图中,就可以这样处理。
分箱离散化
有时候,特征对目标值存在一定的影响,但是这种影响可能未必是线性的增加,此时我们就可以使用分箱方式,对特征进行离散化处理。
重复值
1 重复值探索
使用duplicate检查重复值,可配合keep参数进行调整。
#发现重复值
print(data.duplicated().sum())
#查看哪些记录出现了重复值
data[data.duplicated(keep=False)] #显示所有重复值
2 重复值处理
重复值对数据分析通常没用,直接删除即可。
data.drop_duplicates(inplace=True) #删除重复值
data.duplicated().sum() #检验重复值是否成功删除
python空气质量分析与预测_AQI(空气质量指数)分析与预测(一)相关推荐
- python 空气质量AQI数据分析与预测 ---分析(空气质量排名,临海城市空气质量是否优于内陆城市)
#每天一点点# python 空气质量AQI数据分析与预测 点击可以查看 分析:用到的库,数据集,数据清洗 点击可以查看 分析:相关系数矩阵 #四:数据分析 #1:空气质量最好/最差的5个城市 #最好 ...
- python爬取空气质量_python爬取全国空气质量信息
主要模块 requests模块.使用requests模块来获取http响应 gevent模块.使用gevent开启多个协程,加快爬取速度 re模块或beautifulsoup模块.正则表达式解析与be ...
- python空气质量分析与预测_python 空气质量AQI数据分析与预测 ---分析,相关系数矩阵...
版权声明:本文为博主原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/YmeBtc/article/details ...
- 基于Python的空气质量网络数据爬虫,构建面向深度学习数据预测的空气质量数据集
目录 1.目标 2. 思路 3.算法 3.1 算法流程 3.2 开发环境 4 核心代码 4.1 Header伪装 4.2 get_html_soup函数 4.3 get_city_link_list函 ...
- AQI空气质量分析与预测
AQI分析与预测 背景信息 AQI全称是Air Quality Index,指空气质量指数,用来衡量空气清洁或者污染的程度,值越小,表示空气质量越好. 本文的分析目标 一.描述性统计 哪些城市的空气质 ...
- 城市空气质量分析与预测
城市空气质量分析与预测 一.AQI分析与预测 1.背景信息 2.任务说明 3.数据集描述 二.数据分析流程 基本流程 三.读取数据 1.导入相关的库 2.加载数据集 四.数据清洗 1.缺失值 1.1. ...
- Python数据分析系列(2)——美国纽约皇后区空气质量分析
感谢关注天善智能,走好数据之路↑↑↑ 欢迎关注天善智能,我们是专注于商业智能BI,人工智能AI,大数据分析与挖掘领域的垂直社区,学习,问答.求职一站式搞定! 天善智能社区地址:https://www. ...
- 基于Python的2013-2018全国城市空气质量分析
基于Python的2013-2018全国城市空气质量分析 项目摘要 本项目使用pandas/numpy工具包对557424条空气质量数据进行导入及清洗,并使用matplotlib/seaborn/py ...
- AQI(空气质量指数)分析与预测(二)
AQI(空气质量指数)分析与预测(一) 数据分析 哪些城市的空气质量较好/较差 #空气质量最好的几个城市 t = data['Ciyt','AQI'].sort_values('AQI') #根据AQ ...
最新文章
- 复旦教授:在一般院校里,我可能连当副教授都不够格
- 用notepad++怎样批量添加引号
- 限制IP 访问 Oracle 的方法
- Windows启动文件的详细介绍
- monkey测试===ios-monkey测试工具
- python绘制函数怎么去掉原点_python – 更改绘图的原点
- Eclipse创建JavaWeb工程
- 牛刀小试:使用Reactive Extensions(Rx),对短时间内多次发生的事件限流
- 浏览器内存泄漏问题的跟踪与解决(转)
- 阶段5 3.微服务项目【学成在线】_day04 页面静态化_07-freemarker基础-if指令
- SDK环境变量配置 adb配置
- Serializer和ModelSerializer
- android平板生产力工具,重塑应用生态,让安卓平板成为生产力工具:华为MatePad Pro体验...
- Word 2016使用技巧
- 微信小程序 获取formId
- Linux那些事儿之我是U盘(4)想到达明天,现在就要启程
- Form表单校验_座机号、电话号码
- nuvoton uboo2013引导流程 2 - spl
- [CTF] SQL注入的一些经验总结(未完待续)【更新:2022.11.25】
- 最新小程序授权+php后端(附demo源码)
热门文章
- 攻击与脆弱性之间的关系
- gradle-5.4.1-all gradle-6.1.1.all.zip下载包
- C语言 十六进制与ascii码互转
- 2021-06-20问题整理
- 前行、生活、少年、爱情
- 人人权限系统本地部署
- dz plugin.php,DZ支付积分充值插件 Discuz码支付免签约即时到账插件 Discuz手机支付插件...
- 有力度、有速度更有温度,亚马逊献上史上最长黑五狂欢季
- 国科大学习资料--最优化计算方法(王晓)--期末考试试卷历年题按题型汇总
- python泰坦尼克号生存预测论文_用Python预测泰坦尼克号生存情况