数据分析:某地PM2.5数据分析
先看PPT分析报告:
原始代码:
#-- coding: utf-8 --
“”"
Created on Mon Jan 14 09:46:12 2019
@author: sd
“”"
import pandas as pd
import numpy as np
#清洗数据:读取并删除空值
pm = pd.read_csv(‘C:\Users\sd\Desktop\PRSA_data_2010.1.1-2014.12.31.csv’,engine=‘python’)
pm.dropna(inplace=True)
#定义空气质量等级函数
“”"
规则:
爆表(Beyond Index) pm2.5 > 500
危险(Hazardous) 300 < pm2.5 <= 500
非常不健康(Very Unhealthy) 200 < pm2.5 <= 300
不健康(Unhealthy) 150 < pm2.5 <= 200
对敏感人群不健康(Unhealthy for Sensi) 100 < pm2.5 <= 150
中等(Moderate) 50 < pm2.5 <= 100
健康(good) 0 =< pm2.5 <= 50
“”"
def get_grade(value):
if value <= 50 and value>=0:
return ‘Good’ #健康
elif value <= 100:
return ‘Moderate’ #中等
elif value <= 150:
return ‘Unhealthy for Sensi’ #对敏感人群不健康
elif value <= 200:
return ‘Unhealthy’ #不健康
elif value <= 300:
return ‘Very Unhealthy’ #非常不健康
elif value <= 500:
return ‘Hazardous’ #危险
elif value > 500:
return ‘Beyond Index’ # 爆表了
else:
return None # 输入值无效
#增加空气质量’Grade’字段
pm.loc[:, ‘Grade’] = pm[‘pm2.5’].apply(get_grade)
#定义各年份空气质量
pm2010 = pm[pm[‘year’] == 2010]
pm2011 = pm[pm[‘year’] == 2011]
pm2012 = pm[pm[‘year’] == 2012]
pm2013 = pm[pm[‘year’] == 2013]
pm2014 = pm[pm[‘year’] == 2014]
#分别统计各年份各个空气质量等级占比天数
grade2010 = pm2010.groupby([‘Grade’]).size()/len(pm2010)
grade2011 = pm2011.groupby([‘Grade’]).size()/len(pm2011)
grade2012 = pm2012.groupby([‘Grade’]).size()/len(pm2012)
grade2013 = pm2013.groupby([‘Grade’]).size()/len(pm2013)
grade2014 = pm2014.groupby([‘Grade’]).size()/len(pm2014)
#定义一个空气质量等级索引
ix_grade = [‘Good’, ‘Moderate’, ‘Unhealthy for Sensi’, ‘Unhealthy’, ‘Very Unhealthy’, ‘Hazardous’,‘Beyond Index’]
#创建一个DataFrame,把2010年的空气质量等级占比数据加进去,把其他三个等级数据也加进去
df_year = pd.DataFrame(grade2010, index = ix_grade, columns=[‘2010’])
df_year[‘2011’] = grade2011
df_year[‘2012’] = grade2012
df_year[‘2013’] = grade2013
df_year[‘2014’] = grade2014
#输出年级别空气质量,并作图
print(df_year)
df_year.ix[:,[‘2010’,‘2011’,‘2012’,‘2013’,‘2014’]].plot.bar(title=‘AQI 2010-2014’, figsize=(8,6),fontsize = 12)
#计算当地五年的pm2.5测量值月度平均值
month2010 = pm2010.groupby([‘month’])[‘pm2.5’].mean()
month2011 = pm2011.groupby([‘month’])[‘pm2.5’].mean()
month2012 = pm2012.groupby([‘month’])[‘pm2.5’].mean()
month2013 = pm2013.groupby([‘month’])[‘pm2.5’].mean()
month2014 = pm2014.groupby([‘month’])[‘pm2.5’].mean()
#合并数据
df_month = pd.DataFrame({‘2010’:month2010}, index = np.arange(1,13))
df_month[‘2011’] = month2011
df_month[‘2012’] = month2012
df_month[‘2013’] = month2013
df_month[‘2014’] = month2014
#输出数据并作图
print(df_month)
df_month.ix[:, [‘2010’,‘2011’,‘2012’,‘2013’,‘2014’]].plot(title=‘PM2.5 Monthly Avg. 2010 - 2014’, figsize=(8,4))
#定义每小时的pm2.5,并输出各年小时级别空气质量对比数据,并画出对比图
df_hour = pd.DataFrame({‘month’: pm2010.ix[:,‘month’],
‘day’ : pm2010.ix[:,‘day’],
‘hour’ : pm2010.ix[:,‘hour’],
‘2010’:pm2010.ix[:,‘pm2.5’]})
#拼接数据
df_hour = df_hour.merge(pm2011.ix[:,[‘month’,‘day’,‘hour’,‘pm2.5’]], on=(‘month’,‘day’,‘hour’))
df_hour.rename_axis({‘pm2.5’:‘2011’}, axis=“columns”, inplace=True)
df_hour = df_hour.merge(pm2012.ix[:,[‘month’,‘day’,‘hour’,‘pm2.5’]], on=(‘month’,‘day’,‘hour’))
df_hour.rename_axis({‘pm2.5’:‘2012’}, axis=“columns”, inplace=True)
df_hour = df_hour.merge(pm2013.ix[:,[‘month’,‘day’,‘hour’,‘pm2.5’]], on=(‘month’,‘day’,‘hour’))
df_hour.rename_axis({‘pm2.5’:‘2013’}, axis=“columns”, inplace=True)
df_hour = df_hour.merge(pm2014.ix[:,[‘month’,‘day’,‘hour’,‘pm2.5’]], on=(‘month’,‘day’,‘hour’))
df_hour.rename_axis({‘pm2.5’:‘2014’}, axis=“columns”, inplace=True)
#各年与前一年小时级别空气质量对比
greater_2011and2010 = len(df_hour[df_hour[‘2011’]>df_hour[‘2010’]]), 1.0len(df_hour[df_hour[‘2011’]>df_hour[‘2010’]])/len(df_hour)
less_2011and2010 = len(df_hour[df_hour[‘2011’]<df_hour[‘2010’]]),1.0len(df_hour[df_hour[‘2011’]<df_hour[‘2010’]])/len(df_hour)
greater_2012and2011 = len(df_hour[df_hour[‘2012’]>df_hour[‘2011’]]), 1.0len(df_hour[df_hour[‘2012’]>df_hour[‘2011’]])/len(df_hour)
less_2012and2011 = len(df_hour[df_hour[‘2012’]<df_hour[‘2011’]]),1.0len(df_hour[df_hour[‘2012’]<df_hour[‘2011’]])/len(df_hour)
greater_2013and2012 = len(df_hour[df_hour[‘2013’]>df_hour[‘2012’]]), 1.0len(df_hour[df_hour[‘2013’]>df_hour[‘2012’]])/len(df_hour)
less_2013and2012 = len(df_hour[df_hour[‘2013’]<df_hour[‘2012’]]),1.0len(df_hour[df_hour[‘2013’]<df_hour[‘2012’]])/len(df_hour)
greater_2014and2013 = len(df_hour[df_hour[‘2014’]>df_hour[‘2013’]]), 1.0len(df_hour[df_hour[‘2014’]>df_hour[‘2013’]])/len(df_hour)
less_2014and2013 = len(df_hour[df_hour[‘2014’]<df_hour[‘2013’]]),1.0len(df_hour[df_hour[‘2014’]<df_hour[‘2013’]])/len(df_hour)
#输出结果
print(greater_2011and2010,less_2011and2010)
print(greater_2012and2011,less_2012and2011)
print(greater_2013and2012,less_2013and2012)
print(greater_2014and2013,less_2014and2013)
数据分析:某地PM2.5数据分析相关推荐
- 数据分析~案例:中国五大城市PM2.5数据分析
config.py import os # 指定数据集路径dataset_path='./data' # 结果保存路径output_path='./output' if not os.path.exi ...
- python数据分析要学什么_python数据分析学什么?python数据分析入门
有很多没有基础的新手想学习python数据分析,却在纠结python数据分析难不难学?下面万古网校小编给大家整理了资料,为各位分享! 1.python难不难? Python可以说是目前比较主流而且易学 ...
- python 数据分析学什么-python数据分析学什么?python数据分析入门
有很多没有基础的新手想学习python数据分析,却在纠结python数据分析难不难学?下面万古网校小编给大家整理了资料,为各位分享! 1.python难不难? Python可以说是目前比较主流而且易学 ...
- aspen怎么做灵敏度分析_数据分析终极难题:数据分析怎么做才能驱动业务?
今天来说说数据驱动业务这个话题,但凡企业搞信息化建设.数字化转型的大多都是扛着"数据驱动业务"的大旗往前冲的,渴望通过数据分析来驱动业务增长,但是在实际工作中,大部分的数据分析项目 ...
- teablue数据分析_基于大数据分析的茶叶质量评估
引言 茶叶是茶加工企业生存和发展的基本保障,是 茶产品能够顺利发展的重要资源.茶叶的质量和产 量,通常会遭受各种大气条件以及生态条件和生产 措施的影响.为了保证茶叶质量,需要监测茶叶生 产的整个周期. ...
- 蚂蚁金服数据分析平台演进及数据分析方法应用.pdf(附PPT下载链接)
今天给大家带来蚂蚁金服数据平台部杨军先生所做的分享<蚂蚁金服数据分析平台演进及数据分析方法应用.pdf>,本次分享PPT共48页,包含如下四大部分: 1.蚂蚁金服数据平台部简介: 2.数据 ...
- 炼数成金数据分析课程---7、数据分析简介
炼数成金数据分析课程---7.数据分析简介 一.总结 一句话总结: 我终于知道他们是要做一些什么样的工作了 1.我们导入了数据,是否可以立即进行数据分析? 需要对数据做预处理:比如去除脏数据这些 2. ...
- 【数据分析之道】数据分析导读
文章目录 专栏导读 1.什么是数据分析? 2.数据分析的应用 3.数据分析的重要性 4.数据分析基本流程 总结 专栏导读 ✍ 作者简介:i阿极,CSDN Python领域新星创作者,专注于分享pyth ...
- 【数据分析】什么是数据分析? 分析和管理数据以做出决策
数据分析是一门专注于从数据中提取洞察力的学科,包括数据的分析.收集.组织和存储,以及用于执行此操作的工具和技术 数据分析定义 数据分析是一门专注于从数据中提取洞察力的学科.它包括数据分析和管理的过程. ...
- 【转】数据运营经验:什么是数据分析?怎么做数据分析?
那到底什么是数据分析呢? 说说数据哥的理解:数据分析是基于商业目的,有目的的进行收集.整理.加工和分析数据,提炼有价信息的一个过程. 其过程概括起来主要包括:明确分析目的与框架.数据收集.数据处理.数 ...
最新文章
- ExecutorService为创建的线程池ExecutorService pool = Executors.newFixedThreadPool(POOL_SIZE)
- MPLS原理之MPLS基本结构—Vecloud微云
- 1.初次运行git前的配置
- UIKit 框架之UIActionSheet
- python 初始化数组 numpy,Python Numpy 数组的初始化和基本操作
- C#实现图片的无损压缩
- 从Gartner报告,看中国数据库崛起
- VC实现对话框上信息的显示
- 使用jQuery创建模态窗口登陆效果
- 活动目录操作主机(FSMO)角色详解
- R工程化—Rest API 之plumber包
- PowerDesigner(CDM—PDM—SQL脚本的转换流程) 随笔
- blender快捷键记录-基本所有场景通用
- 如何导出微信好友?通讯录好友保存
- python解二元方程组_Python 解线性方程组
- 骑士cms最新全局SQL注入(官方奇葩修复案例)
- ReadHub源码阅读笔记(二)dagger+MVP
- 抖音3d照片怎么制作html,抖音3D卡通小人是什么app软件 怎么制作方法介绍
- centos6.3下2T以上大硬盘如何部署和使用
- C语言:access函数的使用