先看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.0
len(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.0
len(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.0
len(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.0
len(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数据分析相关推荐

  1. 数据分析~案例:中国五大城市PM2.5数据分析

    config.py import os # 指定数据集路径dataset_path='./data' # 结果保存路径output_path='./output' if not os.path.exi ...

  2. python数据分析要学什么_python数据分析学什么?python数据分析入门

    有很多没有基础的新手想学习python数据分析,却在纠结python数据分析难不难学?下面万古网校小编给大家整理了资料,为各位分享! 1.python难不难? Python可以说是目前比较主流而且易学 ...

  3. python 数据分析学什么-python数据分析学什么?python数据分析入门

    有很多没有基础的新手想学习python数据分析,却在纠结python数据分析难不难学?下面万古网校小编给大家整理了资料,为各位分享! 1.python难不难? Python可以说是目前比较主流而且易学 ...

  4. aspen怎么做灵敏度分析_数据分析终极难题:数据分析怎么做才能驱动业务?

    今天来说说数据驱动业务这个话题,但凡企业搞信息化建设.数字化转型的大多都是扛着"数据驱动业务"的大旗往前冲的,渴望通过数据分析来驱动业务增长,但是在实际工作中,大部分的数据分析项目 ...

  5. teablue数据分析_基于大数据分析的茶叶质量评估

    引言 茶叶是茶加工企业生存和发展的基本保障,是 茶产品能够顺利发展的重要资源.茶叶的质量和产 量,通常会遭受各种大气条件以及生态条件和生产 措施的影响.为了保证茶叶质量,需要监测茶叶生 产的整个周期. ...

  6. 蚂蚁金服数据分析平台演进及数据分析方法应用.pdf(附PPT下载链接)

    今天给大家带来蚂蚁金服数据平台部杨军先生所做的分享<蚂蚁金服数据分析平台演进及数据分析方法应用.pdf>,本次分享PPT共48页,包含如下四大部分: 1.蚂蚁金服数据平台部简介: 2.数据 ...

  7. 炼数成金数据分析课程---7、数据分析简介

    炼数成金数据分析课程---7.数据分析简介 一.总结 一句话总结: 我终于知道他们是要做一些什么样的工作了 1.我们导入了数据,是否可以立即进行数据分析? 需要对数据做预处理:比如去除脏数据这些 2. ...

  8. 【数据分析之道】数据分析导读

    文章目录 专栏导读 1.什么是数据分析? 2.数据分析的应用 3.数据分析的重要性 4.数据分析基本流程 总结 专栏导读 ✍ 作者简介:i阿极,CSDN Python领域新星创作者,专注于分享pyth ...

  9. 【数据分析】什么是数据分析? 分析和管理数据以做出决策

    数据分析是一门专注于从数据中提取洞察力的学科,包括数据的分析.收集.组织和存储,以及用于执行此操作的工具和技术 数据分析定义 数据分析是一门专注于从数据中提取洞察力的学科.它包括数据分析和管理的过程. ...

  10. 【转】数据运营经验:什么是数据分析?怎么做数据分析?

    那到底什么是数据分析呢? 说说数据哥的理解:数据分析是基于商业目的,有目的的进行收集.整理.加工和分析数据,提炼有价信息的一个过程. 其过程概括起来主要包括:明确分析目的与框架.数据收集.数据处理.数 ...

最新文章

  1. ExecutorService为创建的线程池ExecutorService pool = Executors.newFixedThreadPool(POOL_SIZE)
  2. MPLS原理之MPLS基本结构—Vecloud微云
  3. 1.初次运行git前的配置
  4. UIKit 框架之UIActionSheet
  5. python 初始化数组 numpy,Python Numpy 数组的初始化和基本操作
  6. C#实现图片的无损压缩
  7. 从Gartner报告,看中国数据库崛起
  8. VC实现对话框上信息的显示
  9. 使用jQuery创建模态窗口登陆效果
  10. 活动目录操作主机(FSMO)角色详解
  11. R工程化—Rest API 之plumber包
  12. PowerDesigner(CDM—PDM—SQL脚本的转换流程) 随笔
  13. blender快捷键记录-基本所有场景通用
  14. 如何导出微信好友?通讯录好友保存
  15. python解二元方程组_Python 解线性方程组
  16. 骑士cms最新全局SQL注入(官方奇葩修复案例)
  17. ReadHub源码阅读笔记(二)dagger+MVP
  18. 抖音3d照片怎么制作html,抖音3D卡通小人是什么app软件 怎么制作方法介绍
  19. centos6.3下2T以上大硬盘如何部署和使用
  20. C语言:access函数的使用

热门文章

  1. sqlite3 dbconfig说明
  2. CALayer和Retina显示屏的高分辨率的支持
  3. 马云把码云封了,中国最大的男性交友网站无法访问!!!
  4. 革文B2B行业洞察:增长/存亡,中国医疗加速器第三方维保市场迷局
  5. 国内量化投资策略的演进方向
  6. 洛谷-P1427-小鱼的数字游戏
  7. 聊斋志异中的《陆判》
  8. C语言构造有理数的函数,创建有理数对象
  9. Android开发--更换字体
  10. pr导出的avi文件,如何才能被imageJ读read?