基于Python的2013-2018全国城市空气质量分析

项目摘要

本项目使用pandas/numpy工具包对557424条空气质量数据进行导入及清洗,并使用matplotlib/seaborn/pyecharts工具包可视化分析全国主要省市的空气质量情况,对空气质量最差及最好的省市进行排名,利用相关性分析省市的主要污染物,从不同层面给出污染物指标控制方案。

主要结论如下:

  1. 中国北部内陆地区以及西北部地区空气质量较差,沿海地区及高原地区空气质量较好;
  2. 全国空气质量最差的10个省份(排名分先后,差-好):河北省、北京、河南省、天津、新疆、山东、山西、陕西、江苏、湖北;
  3. 全国空气质量最好的10个省份(排名分先后,好-差):海南、云南、福建、贵州、西藏、广东、广西、黑龙江、江西、青海;
  4. 全国空气质量最差的10个城市/地区(排名分先后,差-好):和田地区、喀什地区、保定、邢台、阿克苏地区、石家庄、克牧勒苏州、衡水、邯郸;
  5. 全国空气质量最好的10个城市/地区(排名分先后,好-差):三亚、迪庆州、海口、丽江、黔西南州、怒江州、阿坝州、楚雄州、大理州、普洱;
  6. 空气质量最差省份的主要污染物是pm10、so2、no2。so2与no2两者正相关;
  7. 空气质量最差城市的主要污染物是pm2.5、pm10、so2、no2。so2与no2之间、pm2.5与pm10、so2、no2之间有较强的正相关关系;
  8. 全国空气质量冬季时最差,平均AQI为101.6(轻度污染),夏季时最好,平均AQI为71.9(良好);
  9. 2015年后全国空气质量有很大改善,特别是2016年~2018年,平均AQI约为80,较2013年下降40%;
  10. 广东省最主要的污染物是pm2.5、pm10,其次是so2、no2、co;
  11. 广东省21个城市中,佛山、东莞、广州空气质量最差,AQI分别为73、73.5、74.2,空气质量均为良;
  12. 广东省冬季AQI较高,空气质量较差,夏季AQI较低,空气质量较好; 广东省空气质量全国排名第6;
  13. 深圳市主要的污染物是pm2.5、pm10、so2、co; 深圳市空气质量在全国城市空气质量排名38位。

1.项目背景

本项目以2013-2018年的全国城市空气质量历史数据作为依据,探究全国空气质量与各污染物之间的联系。


2.数据集介绍

数据集地址:https://tianchi.aliyun.com/dataset/dataDetail?dataId=2881
数据来自阿里天池,作者通过PythonSpider从真气网获取数据。以下为各字段描述:


3.项目分析

3.1 提出问题

全国范围:

  1. 全国哪些城市污染较严重,那些省份污染较严重?(AQI作为判断依据)
  2. 污染较严重省份的主要污染物是什么?
  3. 污染较严重城市的主要污染物是什么?
  4. 全国哪个季节的污染最严重?
  5. 2013年-2018年全国整体空气质量如何变化

全省范围(广东省):

  1. 广东省的主要污染物是什么?
  2. 全省哪些城市污染较严重?(AQI作为判断依据)
  3. 全省哪个季节的污染最严重?
  4. 广东省的控制质量在全国的排名?

全市范围(深圳市):

  1. 深圳市的主要污染物是什么?
  2. 深圳空气质量在全国的排名?
  3. 深圳哪个季节的污染最严重?

3.2 理解数据

import pandas as pd
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
%matplotlib inline
df = pd.read_csv('aqi_data_u.csv')
df.head() # 查看表格
time cityname aqi pm2_5 pm10 so2 no2 co o3 primary_pollutant
0 2014-12-31 阿坝州 53 33 55 3 23 1.0 35.0 PM10
1 2015-01-31 阿坝州 31 18 29 7 10 0.5 45.0 NaN
2 2015-01-30 阿坝州 34 19 30 7 13 0.6 48.0 NaN
3 2015-01-29 阿坝州 31 18 31 7 15 0.5 32.0 NaN
4 2015-01-28 阿坝州 29 18 29 7 14 0.6 27.0 NaN
df1 = pd.read_csv('city.csv')
df1.head() # 查看表格。此表为坐标表格,本项目后续改进时增加地图显示城市空气质量
city lat lng
0 阿坝州 31.905763 102.228565
1 安康 32.704370 109.038045
2 阿克苏地区 41.171731 80.269846
3 阿里地区 30.404557 81.107669
4 阿拉善盟 38.843075 105.695683
df1.rename(columns={'city': 'cityname'}, inplace=True) # 重命名city列,以对应df表的列名
df1.head()
cityname lat lng
0 阿坝州 31.905763 102.228565
1 安康 32.704370 109.038045
2 阿克苏地区 41.171731 80.269846
3 阿里地区 30.404557 81.107669
4 阿拉善盟 38.843075 105.695683
df = pd.merge(df, df1, on='cityname', how='inner') # 两个表格合并
df.head()
time cityname aqi pm2_5 pm10 so2 no2 co o3 primary_pollutant lat lng
0 2014-12-31 阿坝州 53 33 55 3 23 1.0 35.0 PM10 31.905763 102.228565
1 2015-01-31 阿坝州 31 18 29 7 10 0.5 45.0 NaN 31.905763 102.228565
2 2015-01-30 阿坝州 34 19 30 7 13 0.6 48.0 NaN 31.905763 102.228565
3 2015-01-29 阿坝州 31 18 31 7 15 0.5 32.0 NaN 31.905763 102.228565
4 2015-01-28 阿坝州 29 18 29 7 14 0.6 27.0 NaN 31.905763 102.228565
df.shape # 查看数据数量
(557424, 12)

共557424行,12列数据。

df.describe()
aqi pm2_5 pm10 so2 no2 co o3 lat lng
count 557424.000000 557424.000000 557424.000000 557424.000000 557424.000000 557424.000000 211516.000000 557424.000000 557424.000000
mean 82.604734 48.958870 84.865831 22.943201 31.041986 1.309690 77.638103 33.320514 112.931476
std 49.948024 235.684284 74.218273 25.620462 18.087321 49.111775 62.773975 6.583132 9.278219
min 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 18.257776 75.992973
25% 52.000000 23.000000 44.000000 9.000000 18.000000 0.700000 42.000000 28.668283 108.069948
50% 71.000000 37.000000 68.000000 15.000000 27.000000 0.900000 69.000000 32.929499 114.351807
75% 99.000000 60.000000 106.000000 27.000000 40.000000 1.200000 102.000000 37.661160 119.455835
max 1210.000000 65535.000000 12060.000000 1495.000000 574.000000 9999.900000 11281.000000 51.991789 131.171402
df.info()
<class 'pandas.core.frame.DataFrame'>
Int64Index: 557424 entries, 0 to 557423
Data columns (total 12 columns):
time                 557424 non-null object
cityname             557424 non-null object
aqi                  557424 non-null int64
pm2_5                557424 non-null int64
pm10                 557424 non-null int64
so2                  557424 non-null int64
no2                  557424 non-null int64
co                   557424 non-null float64
o3                   211516 non-null float64
primary_pollutant    528587 non-null object
lat                  557424 non-null float64
lng                  557424 non-null float64
dtypes: float64(4), int64(5), object(3)
memory usage: 55.3+ MB
print('数据中的城市数量为:', df.cityname.value_counts().count())
数据中的城市数量为: 367

3.3 数据清洗

根据以上简单查看数据,得出以下数据清洗思路:

1.o3、primary_pollutant存在缺失值。o3使用所在城市平均值填充,primary_pollutant统计数据较混乱且与项目问题无关,删除此列;

2.AQI、pm2_5、pm10、so2、no2、co、o3目前存在0值,可理解为该部分数据缺失,可用对应城市的平均值进行填充;

3.时间数据格式需要进行转换,创建季节列;

4.创建空气质量等级列;

5.列出每个城市所属的省份;

6.创建省份空气质量排名列(以AQI为基础);

7.创建城市空气质量排名列(以AQI为基础)。

# 1.o3、primary_pollutant存在缺失值。o3使用所在城市平均值填充,
# primary_pollutant统计数据较混乱且与项目问题无关,删除此列;
for city in df.cityname.value_counts().index:'''for循环计算每个城市污染物的平均值后替换NaN值'''df.loc[(df['cityname'] == city) & (df['o3'].isnull()), 'o3'] = df[df['cityname'] == city]['o3'].mean()df['o3'].isnull().sum()
0

填充后缺失值为0

df.drop(['primary_pollutant'], axis=1, inplace=True)
df.head() #查看调整后的表格
time cityname aqi pm2_5 pm10 so2 no2 co o3 lat lng
0 2014-12-31 阿坝州 53 33 55 3 23 1.0 35.0 31.905763 102.228565
1 2015-01-31 阿坝州 31 18 29 7 10 0.5 45.0 31.905763 102.228565
2 2015-01-30 阿坝州 34 19 30 7 13 0.6 48.0 31.905763 102.228565
3 2015-01-29 阿坝州 31 18 31 7 15 0.5 32.0 31.905763 102.228565
4 2015-01-28 阿坝州 29 18 29 7 14 0.6 27.0 31.905763 102.228565
df.isnull().any() # 确认表格中是否还有缺失值
time        False
cityname    False
aqi         False
pm2_5       False
pm10        False
so2         False
no2         False
co          False
o3          False
lat         False
lng         False
dtype: bool
# 2.AQI、pm2_5、pm10、so2、no2、co、o3目前存在0值,可理解为该部分数据缺失,可用对应城市的平均值进行填充;
df[['aqi', 'pm2_5', 'pm10', 'so2', 'no2', 'co', 'o3']] = df[['aqi', 'pm2_5', 'pm10', 'so2', 'no2', 'co', 'o3']].replace(0, np.NaN)
df.isnull().sum() # 将0值替换后缺失值的数量
time           0
cityname       0
aqi         4199
pm2_5       6817
pm10        4817
so2         1631
no2         1621
co          3493
o3          2342
lat            0
lng            0
dtype: int64
cities = df.cityname.value_counts().index
for city in cities:'''for循环计算每个城市污染物的平均值后替换NaN值'''for pollutant in ['aqi', 'pm2_5', 'pm10', 'so2', 'no2', 'co', 'o3']:df.loc[(df['cityname'] == city) & (df[pollutant].isnull()), pollutant] = df[df['cityname'] == city][pollutant].mean()
df.isnull().sum() # 再次检查缺失值
time        0
cityname    0
aqi         0
pm2_5       0
pm10        0
so2         0
no2         0
co          0
o3          0
lat         0
lng         0
dtype: int64
# 3.时间数据格式需要进行转换,创建季节列;
df['time'] = pd.to_datetime(df['time'])
df.info() #查看time列的数据类型
<class 'pandas.core.frame.DataFrame'>
Int64Index: 557424 entries, 0 to 557423
Data columns (total 11 columns):
time        557424 non-null datetime64[ns]
cityname    557424 non-null object
aqi         557424 non-null float64
pm2_5       557424 non-null float64
pm10        557424 non-null float64
so2         557424 non-null float64
no2         557424 non-null float64
co          557424 non-null float64
o3          557424 non-null float64
lat         557424 non-null float64
lng         557424 non-null float64
dtypes: datetime64[ns](1), float64(9), object(1)
memory usage: 51.0+ MB
# 根据月份创建季节列
seasons = {12: 'Winter',1: 'Winter',2: 'Winter',3: 'Spring',4: 'Spring',5: 'Spring',6: 'Summer',7: 'Summer',8: 'Summer',9: 'Autumn',10: 'Autumn',11: 'Autumn'
}
df['season'] = df['time'].apply(lambda x : seasons [x.month])
df.head()
time cityname aqi pm2_5 pm10 so2 no2 co o3 lat lng season
0 2014-12-31 阿坝州 53.0 33.0 55.0 3.0 23.0 1.0 35.0 31.905763 102.228565 Winter
1 2015-01-31 阿坝州 31.0 18.0 29.0 7.0 10.0 0.5 45.0 31.905763 102.228565 Winter
2 2015-01-30 阿坝州 34.0 19.0 30.0 7.0 13.0 0.6 48.0 31.905763 102.228565 Winter
3 2015-01-29 阿坝州 31.0 18.0 31.0 7.0 15.0 0.5 32.0 31.905763 102.228565 Winter
4 2015-01-28 阿坝州 29.0 18.0 29.0 7.0 14.0 0.6 27.0 31.905763 102.228565 Winter
# 4.创建空气质量等级列
bin_edges = [0, 50, 100, 150, 200, 300, 1210] # 根据AQI的划分等级设置标签
bin_names = ['优级', '良好', '轻度污染', '中度污染', '重度污染', '重污染']
df['空气质量'] = pd.cut(df['aqi'], bin_edges, labels=bin_names)
df.head()
time cityname aqi pm2_5 pm10 so2 no2 co o3 lat lng season 空气质量
0 2014-12-31 阿坝州 53.0 33.0 55.0 3.0 23.0 1.0 35.0 31.905763 102.228565 Winter 良好
1 2015-01-31 阿坝州 31.0 18.0 29.0 7.0 10.0 0.5 45.0 31.905763 102.228565 Winter 优级
2 2015-01-30 阿坝州 34.0 19.0 30.0 7.0 13.0 0.6 48.0 31.905763 102.228565 Winter 优级
3 2015-01-29 阿坝州 31.0 18.0 31.0 7.0 15.0 0.5 32.0 31.905763 102.228565 Winter 优级
4 2015-01-28 阿坝州 29.0 18.0 29.0 7.0 14.0 0.6 27.0 31.905763 102.228565 Winter 优级
# 5.列出每个城市所属的省份;city_province={'即墨': '山东省', '阿坝州': '四川省', '安康': '陕西省', '阿克苏地区': '新疆维吾尔自治区', '阿里地区': '西藏区', '阿拉善盟': '内蒙古自治区', '安庆': '安徽省', '安顺': '贵州省', '鞍山': '辽宁省','克孜勒苏州': '新疆维吾尔自治区', '安阳': '河南省', '蚌埠': '安徽省', '白城': '吉林省', '北海': '广西壮族自治区', '宝鸡': '陕西省', '毕节': '贵州省', '白山': '吉林省', '百色': '广西壮族自治区', '保山': '云南省', '包头': '内蒙古自治区', '本溪': '辽宁省', '巴彦淖尔': '内蒙古自治区','白银': '甘肃省', '巴中': '四川省', '滨州': '山东省', '亳州': '安徽省', '昌都': '西藏区', '常德': '湖南省', '赤峰': '内蒙古自治区', '昌吉州': '新疆维吾尔自治区', '五家渠': '新疆维吾尔自治区','楚雄州': '云南省', '朝阳': '辽宁省', '长治': '山西省', '潮州': '广东省', '郴州': '湖南省','池州': '安徽省', '崇左': '广西壮族自治区', '滁州': '安徽省', '丹东': '辽宁省', '德宏州': '云南省', '大理州': '云南省', '大庆': '黑龙江', '大同': '山西省', '定西': '甘肃省', '大兴安岭地区': '黑龙江', '德阳': '四川省', '东营': '山东省', '黔南州': '贵州省', '达州': '四川省', '德州': '山东省', '鄂尔多斯': '内蒙古自治区', '恩施州': '湖北省', '鄂州': '湖北省', '防城港': '广西壮族自治区','抚顺': '辽宁省', '阜新': '辽宁省', '阜阳': '安徽省', '抚州': '江西省', '广安': '四川省','贵港': '广西壮族自治区', '桂林': '广西壮族自治区', '果洛州': '青海省', '甘南州': '甘肃省', '广元': '四川省', '甘孜州': '四川省', '赣州': '江西省', '海北州': '青海省', '鹤壁': '河南省','淮北': '安徽省', '河池': '广西壮族自治区', '海东地区': '青海省', '鹤岗': '黑龙江', '黄冈': '湖北省', '黑河': '黑龙江', '红河州': '云南省', '怀化': '湖南省', '呼伦贝尔': '内蒙古自治区', '葫芦岛': '辽宁省','哈密地区': '新疆维吾尔自治区', '淮南': '安徽省', '黄山': '安徽省', '黄石': '湖北省', '和田地区': '新疆维吾尔自治区', '海西州': '青海省', '河源': '广东省', '衡阳': '湖南省', '汉中': '陕西省', '菏泽': '山东省', '贺州': '广西壮族自治区', '吉安': '江西省', '金昌': '甘肃省', '晋城': '山西省', '景德镇': '江西省', '西双版纳州': '云南省', '九江': '江西省', '吉林': '吉林省','荆门': '湖北省', '佳木斯': '黑龙江', '济宁': '山东省', '酒泉': '甘肃省', '湘西州': '湖南省','鸡西': '黑龙江', '揭阳': '广东省', '嘉峪关': '甘肃省', '焦作': '河南省', '锦州': '辽宁省','晋中': '山西省', '荆州': '湖北省', '开封': '河南省', '黔东南州': '贵州省','克拉玛依': '新疆维吾尔自治区', '喀什地区': '新疆维吾尔自治区', '六安': '安徽省','来宾': '广西壮族自治区', '聊城': '山东省', '临沧': '云南省', '娄底': '湖南省', '临汾': '山西省','漯河': '河南省', '丽江': '云南省', '吕梁': '山西省', '陇南': '甘肃省', '六盘水': '贵州省','乐山': '四川省', '凉山州': '四川省', '莱芜': '山东省', '辽阳': '辽宁省', '辽源': '吉林省','临沂': '山东省', '龙岩': '福建省', '洛阳': '河南省', '林芝': '西藏区', '柳州': '广西壮族自治区', '泸州': '四川省', '马鞍山': '安徽省', '牡丹江': '黑龙江', '茂名': '广东省', '眉山': '四川省','绵阳': '四川省', '梅州': '广东省', '南充': '四川省', '宁德': '福建省', '内江': '四川省','怒江州': '云南省', '南平': '福建省', '那曲地区': '西藏区', '南阳': '河南省', '平顶山': '河南省', '盘锦': '辽宁省', '平凉': '甘肃省', '莆田': '福建省', '萍乡': '江西省', '濮阳': '河南省', '攀枝花': '四川省', '曲靖': '云南省', '齐齐哈尔': '黑龙江', '七台河': '黑龙江', '黔西南州': '贵州省', '清远':'广东省', '庆阳': '甘肃省', '钦州': '广西壮族自治区', '泉州': '福建省', '日喀则': '西藏区', '日照': '山东省', '韶关': '广东省', '绥化': '黑龙江', '石河子': '新疆维吾尔自治区', '商洛': '陕西省', '三明': '福建省', '三门峡': '河南省', '山南': '西藏区', '遂宁': '四川省', '四平': '吉林省', '商丘': '河南省', '上饶': '江西省', '汕头': '广东省', '汕尾': '广东省', '三亚': '海南省', '邵阳': '湖南省', '十堰': '湖北省', '松原': '吉林省', '双鸭山': '黑龙江', '朔州': '山西省', '宿州': '安徽省', '随州': '湖北省', '泰安': '山东省', '塔城地区': '新疆维吾尔自治区', '铜川': '陕西省', '通化': '吉林省', '铁岭': '辽宁省','通辽': '内蒙古自治区', '铜陵': '安徽省', '吐鲁番地区': '新疆维吾尔自治区', '铜仁地区': '贵州省', '天水': '甘肃省', '潍坊': '山东省', '威海': '山东省', '乌海': '内蒙古自治区', '芜湖': '安徽省', '乌兰察布': '内蒙古自治区', '渭南': '陕西省', '文山州': '云南省', '武威': '甘肃省', '梧州': '广西壮族自治区', '兴安盟': '内蒙古自治区', '许昌': '河南省', '宣城': '安徽省', '孝感': '湖北省','迪庆州': '云南省', '锡林郭勒盟': '内蒙古自治区', '咸宁': '湖北省', '湘潭': '湖南省', '新乡': '河南省', '咸阳': '陕西省', '新余': '江西省', '信阳': '河南省', '忻州': '山西省', '雅安': '四川省','延安': '陕西省', '延边州': '吉林省', '宜宾': '四川省', '宜昌': '湖北省', '宜春': '江西省', '运城': '山西省', '伊春': '黑龙江', '云浮': '广东省', '阳江': '广东省', '营口': '辽宁省', '榆林': '陕西省', '玉林': '广西壮族自治区', '阳泉': '山西省', '玉树州': '青海省', '烟台': '山东省', '鹰潭': '江西省', '玉溪': '云南省', '益阳': '湖南省', '岳阳': '湖南省', '永州': '湖南省', '淄博': '山东省', '自贡': '四川省', '湛江': '广东省', '张家界': '湖南省', '周口': '河南省', '驻马店': '河南省', '昭通': '云南省','张掖': '甘肃省', '资阳': '四川省', '遵义': '贵州省', '枣庄': '山东省', '漳州': '福建省', '株洲': '湖南省', '深圳': '广东省', '福州': '福建省', '舟山': '浙江省', '青岛': '山东省', '无锡': '江苏省', '湖州': '浙江省', '成都': '四川省', '石家庄': '河北省', '苏州': '新疆维吾尔自治区', '连云港': '江苏省','徐州': '江苏省', '廊坊': '河北省', '常州': '江苏省', '宿迁': '江苏省', '衡水': '河北省', '兰州': '甘肃省', '邢台': '河北省', '沧州': '河北省', '哈尔滨': '黑龙江', '济南': '山东省', '昆明': '云南省','扬州': '江苏省', '杭州': '浙江省', '海口': '海南省', '南京': '江苏省', '广州': '广东省', '长沙':'湖南省', '厦门': '福建省', '秦皇岛': '河北省', '张家口': '河北省', '宁波': '浙江省', '南宁':'广西壮族自治区', '盐城': '江苏省', '邯郸': '河北省', '贵阳': '贵州省', '衢州': '浙江省', '承德': '河北省', '南通': '江苏省', '沈阳': '辽宁省', '呼和浩特': '内蒙古自治区', '中山': '广东省', '武汉': '湖北省', '合肥': '安徽省', '长春': '吉林省', '嘉兴': '浙江省', '大连': '辽宁省', '台州': '浙江省','拉萨': '西藏区', '肇庆': '广东省', '西安': '陕西省', '保定': '河北省', '江门': '广东省', '西宁': '青海省', '乌鲁木齐': '新疆维吾尔自治区', '绍兴': '浙江省', '淮安': '江苏省', '温州': '浙江省', '郑州':'河南省', '惠州': '广东省', '泰州': '新疆维吾尔自治区', '珠海': '广东省', '南昌': '江西省', '唐山': '河北省', '金华': '浙江省', '佛山': '广东省', '东莞': '广东省', '丽水': '浙江省', '太原': '山西省', '镇江': '江苏省', '阿勒泰地区': '新疆维吾尔自治区', '北京': '北京', '博州': '新疆维吾尔自治区','常熟': '江苏省', '富阳': '浙江省', '固原': '宁夏回族自治区', '海门': '江苏省', '海南州': '青海省','黄南州': '青海省', ' 即墨': '山东省', '胶南': '山东省', '句容': '江苏省', '金坛': '江苏省', '江阴': '江苏省', '胶州': '山东省', '库尔勒': '新疆维吾尔自治区', '昆山': '江苏省', '临安': '浙江省','莱西': '山东省', '临夏州': '甘肃省', '溧阳': '江苏省', '莱州': '山东省', '平度': '山东省', '普洱':'云南省', '蓬莱': '山东省', '荣成': '山东省', '乳山': '山东省', '寿光': '山东省', '石嘴山': '宁夏回族自治区', '太仓': '江苏省', '文登': '山东省', '瓦房店': '辽宁省', '吴江': '江苏省', '吴忠': '宁夏回族自治区', '襄阳': '湖北省', '伊犁哈萨克州': '新疆维吾尔自治区', '义乌': '浙江省', '宜兴':'江苏省', '诸暨': '浙江省', '张家港': '江苏省', '章丘': '山东省', '中卫': '宁夏回族自治区', '招远': '山东省', '天津': '天津市', '重庆': '重庆市', '银川': '甘肃省', '上海': '上海市'}
df['省份'] = df['cityname'].map(city_province)
df.head()
time cityname aqi pm2_5 pm10 so2 no2 co o3 lat lng season 空气质量 省份
0 2014-12-31 阿坝州 53.0 33.0 55.0 3.0 23.0 1.0 35.0 31.905763 102.228565 Winter 良好 四川省
1 2015-01-31 阿坝州 31.0 18.0 29.0 7.0 10.0 0.5 45.0 31.905763 102.228565 Winter 优级 四川省
2 2015-01-30 阿坝州 34.0 19.0 30.0 7.0 13.0 0.6 48.0 31.905763 102.228565 Winter 优级 四川省
3 2015-01-29 阿坝州 31.0 18.0 31.0 7.0 15.0 0.5 32.0 31.905763 102.228565 Winter 优级 四川省
4 2015-01-28 阿坝州 29.0 18.0 29.0 7.0 14.0 0.6 27.0 31.905763 102.228565 Winter 优级 四川省
# 6.创建省份空气质量排名列(以AQI平均值为基础);a = df.groupby('省份').mean().aqi.sort_values().indexb = []
for _ in range(1, a.shape[0]+1):b.append(_)pro_rank_dic = dict(zip(a, b))
pro_rank_dic
{'海南省': 1,'云南省': 2,'福建省': 3,'贵州省': 4,'西藏区': 5,'广东省': 6,'广西壮族自治区': 7,'黑龙江': 8,'江西省': 9,'青海省': 10,'内蒙古自治区': 11,'四川省': 12,'湖南省': 13,'浙江省': 14,'吉林省': 15,'甘肃省': 16,'重庆市': 17,'上海市': 18,'辽宁省': 19,'安徽省': 20,'宁夏回族自治区': 21,'湖北省': 22,'江苏省': 23,'陕西省': 24,'山西省': 25,'山东省': 26,'新疆维吾尔自治区': 27,'天津市': 28,'河南省': 29,'北京': 30,'河北省': 31}
# 匹配省名,增加排名列
df['所属省份空气质量排名'] = df['省份'].map(pro_rank_dic)
df.head()
time cityname aqi pm2_5 pm10 so2 no2 co o3 lat lng season 空气质量 省份 所属省份空气质量排名
0 2014-12-31 阿坝州 53.0 33.0 55.0 3.0 23.0 1.0 35.0 31.905763 102.228565 Winter 良好 四川省 12
1 2015-01-31 阿坝州 31.0 18.0 29.0 7.0 10.0 0.5 45.0 31.905763 102.228565 Winter 优级 四川省 12
2 2015-01-30 阿坝州 34.0 19.0 30.0 7.0 13.0 0.6 48.0 31.905763 102.228565 Winter 优级 四川省 12
3 2015-01-29 阿坝州 31.0 18.0 31.0 7.0 15.0 0.5 32.0 31.905763 102.228565 Winter 优级 四川省 12
4 2015-01-28 阿坝州 29.0 18.0 29.0 7.0 14.0 0.6 27.0 31.905763 102.228565 Winter 优级 四川省 12
# 7.创建城市空气质量排名列(以AQI为基础)。
c = df.groupby('cityname').mean().aqi.sort_values().indexd = []
for _ in range(1, c.shape[0]+1):d.append(_)city_rank_dic = dict(zip(c, d))
city_rank_dic
{'三亚': 1,'迪庆州': 2,'海口': 3,'丽江': 4,'黔西南州': 5,'怒江州': 6,'阿坝州': 7,'楚雄州': 8,'大理州': 9,'普洱': 10,
....'德州': 357,'安阳': 358,'邯郸': 359,'衡水': 360,'克孜勒苏州': 361,'石家庄': 362,'阿克苏地区': 363,'邢台': 364,'保定': 365,'喀什地区': 366,'和田地区': 367}
# 匹配城市名,增加排名列
df['城市空气质量全国排名'] = df['cityname'].map(city_rank_dic)
df.head()
time cityname aqi pm2_5 pm10 so2 no2 co o3 lat lng season 空气质量 省份 所属省份空气质量排名 城市空气质量全国排名
0 2014-12-31 阿坝州 53.0 33.0 55.0 3.0 23.0 1.0 35.0 31.905763 102.228565 Winter 良好 四川省 12 7
1 2015-01-31 阿坝州 31.0 18.0 29.0 7.0 10.0 0.5 45.0 31.905763 102.228565 Winter 优级 四川省 12 7
2 2015-01-30 阿坝州 34.0 19.0 30.0 7.0 13.0 0.6 48.0 31.905763 102.228565 Winter 优级 四川省 12 7
3 2015-01-29 阿坝州 31.0 18.0 31.0 7.0 15.0 0.5 32.0 31.905763 102.228565 Winter 优级 四川省 12 7
4 2015-01-28 阿坝州 29.0 18.0 29.0 7.0 14.0 0.6 27.0 31.905763 102.228565 Winter 优级 四川省 12 7
df.info() # 全部清洗完后,再查看一次数据整体情况
<class 'pandas.core.frame.DataFrame'>
Int64Index: 557424 entries, 0 to 557423
Data columns (total 16 columns):
time          557424 non-null datetime64[ns]
cityname      557424 non-null object
aqi           557424 non-null float64
pm2_5         557424 non-null float64
pm10          557424 non-null float64
so2           557424 non-null float64
no2           557424 non-null float64
co            557424 non-null float64
o3            557424 non-null float64
lat           557424 non-null float64
lng           557424 non-null float64
season        557424 non-null object
空气质量          557424 non-null category
省份            557424 non-null object
所属省份空气质量排名    557424 non-null int64
城市空气质量全国排名    557424 non-null int64
dtypes: category(1), datetime64[ns](1), float64(9), int64(2), object(3)
memory usage: 68.6+ MB

3.4 构建模型

df.describe()
aqi pm2_5 pm10 so2 no2 co o3 lat lng 所属省份空气质量排名 城市空气质量全国排名
count 557424.000000 557424.000000 557424.000000 557424.000000 557424.000000 557424.000000 557424.000000 557424.000000 557424.000000 557424.000000 557424.000000
mean 83.352753 49.858352 85.839185 23.012129 31.140534 1.320357 78.645854 33.320514 112.931476 16.795900 191.178832
std 49.496925 235.709794 73.957719 25.595366 18.015186 49.113311 40.107875 6.583132 9.278219 8.716008 106.081159
min 3.000000 1.000000 1.000000 1.000000 1.000000 0.100000 1.000000 18.257776 75.992973 1.000000 1.000000
25% 52.000000 23.000000 44.000000 9.000000 18.000000 0.700000 63.000000 28.668283 108.069948 9.000000 100.000000
50% 72.000000 38.000000 69.000000 16.000000 27.000000 0.900000 75.364005 32.929499 114.351807 16.000000 195.000000
75% 100.000000 61.000000 107.000000 27.000000 40.000000 1.200000 90.000000 37.661160 119.455835 25.000000 284.000000
max 1210.000000 65535.000000 12060.000000 1495.000000 574.000000 9999.900000 11281.000000 51.991789 131.171402 31.000000 367.000000

plt.figure(figsize=(25,5))
sns.heatmap(df.corr(), vmax=1, square=False, annot=True, linewidth=1)
plt.yticks(rotation=0);

[外链图片转存失败(img-iX160M0q-1565960643261)(output_36_0.png)]

与全国空气质量有较大关系的污染物指标是pm10、so2、no2。

1.全国范围:

问题1.1:全国哪些城市污染较严重,那些省份污染较严重?(AQI作为判断依据)

# 使用pyecharts模块导入地图,在地图上显示城市空气质量
from pyecharts import Geokeys = df.groupby('cityname').aqi.mean().index
values = df.groupby('cityname').aqi.mean().valuesgeo = Geo("全国主要城市空气质量图", "data from AQI", title_color="#fff",title_pos="left", width=800, height=600,background_color='#404a59')geo.add("全国城市空气质量图", keys, values, visual_range=[38.072282, 193.755892], type='effectScatter',visual_text_color="#fff", symbol_size=15,is_visualmap=True, is_roam=True) # type有scatter, effectScatter, heatmap三种模式可选,可根据自己的需求选择对应的图表模式
geo.render(path="全国主要城市空气质量图.html")

从地图上可以看出,中国的北部内陆地区以及西北部地区空气质量较差,沿海地区及高原地区空气质量较好。

pd.DataFrame(df.groupby('cityname').aqi.mean().sort_values().tail(10)).plot.barh(figsize=(20,10))
plt.xlim(125,200)
plt.style.use('dark_background')
plt.title('全国空气质量最差城市')
plt.xlabel('AQI')
plt.ylabel('城市名')
plt.legend('AQI')
plt.grid(linestyle=':', color='w')
plt.show();

全国空气质量最差的10个城市/地区(排名分先后,差-好):

和田地区、喀什地区、保定、邢台、阿克苏地区、石家庄、克牧勒苏州、衡水、邯郸、安阳

pd.DataFrame(df.groupby('cityname').aqi.mean().sort_values(ascending=False).tail(10)).plot.barh(figsize=(20,10))
plt.style.use('dark_background')
plt.title('全国空气质量十佳城市')
plt.xlabel('AQI')
plt.ylabel('城市名')
plt.xlim(37,47)
plt.legend('AQI')
plt.grid(linestyle=':', color='w')
plt.show();

全国空气质量最好的10个城市/地区(排名分先后,好-差):

三亚、迪庆州、海口、丽江、黔西南州、怒江州、阿坝州、楚雄州、大理州、普洱

pd.DataFrame(df.groupby('省份').aqi.mean().sort_values().tail(10)).plot.barh(figsize=(20,10))
plt.style.use('dark_background')
plt.title('全国空气质量最差省份')
plt.xlabel('AQI')
plt.ylabel('省份')
plt.xlim(85, 120)
plt.legend('AQI')
plt.grid(linestyle=':', color='w')
plt.show();

全国空气质量最差的10个省份(排名分先后,差-好):

河北省、北京、河南省、天津、新疆、山东、山西、陕西、江苏、湖北

pd.DataFrame(df.groupby('省份').aqi.mean().sort_values(ascending=False).tail(10)).plot.barh(figsize=(20,10))
plt.style.use('dark_background')
plt.title('全国空气质量十佳省份')
plt.xlabel('AQI')
plt.ylabel('省份')
plt.xlim(40, 75)
plt.legend('AQI')
plt.grid(linestyle=':', color='w')
plt.show();

全国空气质量最好的10个省份(排名分先后,好-差):

海南、云南、福建、贵州、西藏、广东、广西、黑龙江、江西、青海

问题1.2:污染较严重省份的主要污染物是什么?

df_top10_polluted = []
df_top10_polluted = pd.DataFrame(df_top10_polluted)
for _ in range(0, 10):'''提取空气质量最严重的省份信息'''temp = df[df['省份'] == df.groupby('省份').aqi.mean().sort_values().tail(10).index[_]]df_top10_polluted = pd.concat([df_top10_polluted, temp])
# 这里只关注轻度污染以上时的污染物情况
df_overpolluted = df_top10_polluted[df_top10_polluted['aqi'] >= 100][['aqi', 'pm2_5', 'pm10', 'so2', 'no2', 'co', 'o3']]
sns.regplot(x='pm2_5', y='aqi', data=df_overpolluted);

sns.regplot(x='pm10', y='aqi', data=df_overpolluted);

sns.regplot(x='so2', y='aqi', data=df_overpolluted);

sns.regplot(x='no2', y='aqi', data=df_overpolluted);

sns.regplot(x='co', y='aqi', data=df_overpolluted);

sns.regplot(x='o3', y='aqi', data=df_overpolluted);

plt.figure(figsize=(15,5))
sns.heatmap(df_overpolluted.corr(), vmax=1, square=False, annot=True, linewidth=1)
plt.yticks(rotation=0);

由线性关系图和热点图可知,这十个空气质量最差省份的主要污染物是pm10、so2、no2,这三种物质的高低对AQI值有较大影响,与AQI成正相关关系。此外,so2与no2两者也表现出较强的正相关关系。

问题1.3:污染较严重城市的主要污染物是什么?

df_top10_polluted_city = []
df_top10_polluted_city = pd.DataFrame(df_top10_polluted_city)
for _ in range(0, 10):'''提取空气质量最严重的城市信息'''temp = df[df['cityname'] == df.groupby('cityname').aqi.mean().sort_values().tail(10).index[_]]df_top10_polluted_city = pd.concat([df_top10_polluted_city, temp])
# 这里只关注轻度污染以上时的污染物情况
df_overpolluted_city = df_top10_polluted_city[df_top10_polluted_city['aqi'] >= 100][['aqi', 'pm2_5', 'pm10','so2', 'no2', 'co', 'o3']]
sns.regplot(x='pm2_5', y='aqi', data=df_overpolluted_city);

sns.regplot(x='pm10', y='aqi', data=df_overpolluted_city);

sns.regplot(x='so2', y='aqi', data=df_overpolluted_city);

sns.regplot(x='no2', y='aqi', data=df_overpolluted_city);

sns.regplot(x='co', y='aqi', data=df_overpolluted_city);

sns.regplot(x='o3', y='aqi', data=df_overpolluted_city);

plt.figure(figsize=(15,5))
sns.heatmap(df_overpolluted_city.corr(), vmax=1, square=False, annot=True, linewidth=1)
plt.yticks(rotation=0);

同样,由线性关系图和热点图可知,十个空气质量最差城市的主要污染物是pm2.5、pm10、so2、no2,四种物质的高低对AQI值有较大影响,与AQI成正相关关系。其中值得注意的是pm2.5与城市空气质量密切相关,但与省空气质量相关性不是非常大。so2与no2之间、pm2.5与pm10、so2、no2之间表现出了较强的正相关关系,也就是说pm10、so2、no2三个指标中的某一指标的升高都会伴随着pm2.5的升高。

问题1.4:全国哪个季节的污染最严重?

pd.DataFrame(df.groupby('season').aqi.mean().sort_values()).plot.barh(figsize=(15,10))
plt.title('全国不同季节空气质量情况')
plt.xlabel('AQI')
plt.ylabel('季节')
plt.xlim(60)
plt.legend('AQI')
plt.grid(linestyle=':', color='w')
plt.show();

df.groupby('season').aqi.mean().sort_values()
season
Summer     71.911104
Autumn     76.040072
Spring     82.730394
Winter    101.647808
Name: aqi, dtype: float64

全国空气质量冬季时最差,平均AQI为101.6(轻度污染),夏季时最好,平均AQI为71.9(良好)。

问题1.5:2013年-2018年全国整体空气质量如何变化?

f, ax= plt.subplots(figsize = (14, 10))
sns.relplot(x='time', y='aqi', kind = 'line', data=df, ax=ax);

2013-2014年整体AQI较2015~2018年高。

# 提取年和月进一步分析整体AQI情况
times = df['time'].shape[0]
a = []
for _ in range(times):month = df['time'][_].montha.append(month)
df['month'] = ab = []
for i in range(times):year = df['time'][i].yearb.append(year)
df['year'] = bdf.head()
time cityname aqi pm2_5 pm10 so2 no2 co o3 lat lng season 空气质量 省份 所属省份空气质量排名 城市空气质量全国排名 month year
0 2014-12-31 阿坝州 53.0 33.0 55.0 3.0 23.0 1.0 35.0 31.905763 102.228565 Winter 良好 四川省 12 7 12 2014
1 2015-01-31 阿坝州 31.0 18.0 29.0 7.0 10.0 0.5 45.0 31.905763 102.228565 Winter 优级 四川省 12 7 1 2015
2 2015-01-30 阿坝州 34.0 19.0 30.0 7.0 13.0 0.6 48.0 31.905763 102.228565 Winter 优级 四川省 12 7 1 2015
3 2015-01-29 阿坝州 31.0 18.0 31.0 7.0 15.0 0.5 32.0 31.905763 102.228565 Winter 优级 四川省 12 7 1 2015
4 2015-01-28 阿坝州 29.0 18.0 29.0 7.0 14.0 0.6 27.0 31.905763 102.228565 Winter 优级 四川省 12 7 1 2015
plt.figure(figsize=(30,10))
sns.barplot(x='month', y='aqi', hue='year', data=df)
plt.style.use('dark_background')
plt.ylim(50)
plt.title('2013年~2108年全国空气质量1~12月对比')
plt.show();

按每月AQI进行对比,2013年AQI比后面几年的数据都要高出很多,特别是8月12月的AQI数据。20152018年的AQI明显比前两年有所降低。高AQI的月份主要在12月2月,低AQI的月份主要在8月10月。

df.groupby('year').aqi.mean().plot.bar(figsize=(15 ,10))
plt.title('全国空气质量年变化')
plt.xticks(rotation=0)
plt.xlabel('年')
plt.ylabel('AQI')
plt.ylim(60)
plt.legend('AQI')
plt.grid(linestyle=':', color='w')
plt.show();

上图以年份为单位进行对比,可以明显看出2015年后全国空气质量有很大改善,特别是2016年~2018年,平均AQI约为80,较2013年下降40%。

2.全省范围(广东省为例):

问题2.1:广东省的主要污染物是什么?

df_gd = df[df['省份'] == '广东省']
df_gd_pollutant = df_gd[df_gd['aqi'] >= 100][['aqi', 'pm2_5', 'pm10', 'so2', 'no2', 'co', 'o3']]
sns.regplot(x='pm2_5', y='aqi', data=df_gd_pollutant);

sns.regplot(x='pm10', y='aqi', data=df_gd_pollutant);

sns.regplot(x='so2', y='aqi', data=df_gd_pollutant);

sns.regplot(x='no2', y='aqi', data=df_gd_pollutant);

sns.regplot(x='co', y='aqi', data=df_gd_pollutant);

sns.regplot(x='o3', y='aqi', data=df_gd_pollutant);

plt.figure(figsize=(15,5))
sns.heatmap(df_gd_pollutant.corr(), vmax=1, square=False, annot=True, linewidth=1)
plt.yticks(rotation=0);

由线性关系图和热点图可知广东省最主要的污染物是pm2.5、pm10,其次是so2、no2、co。与全国空气质量和污染物指标关系不同的是,广东省的pm2.5、pm10、so2、no2、co5个污染物指标之间它们互相影响,都有较强的正相关关系。

问题2.2:全省哪些城市污染较严重?(AQI作为判断依据)

print('广东省的城市数量为:', df_gd.groupby('cityname').aqi.mean().shape[0])
广东省的城市数量为: 21
df_gd.groupby('cityname').aqi.mean().sort_values().tail(3) # 得出污染较严重的3个城市
cityname
佛山    73.004110
东莞    73.461992
广州    74.189665
Name: aqi, dtype: float64

广东省21个城市中,佛山、东莞、广州空气质量最差,AQI分别为73、73.5、74.2,空气质量均为良。

问题2.3:全省哪个季节的污染最严重?

pd.DataFrame(df_gd.groupby('season').aqi.mean().sort_values()).plot.barh(figsize=(15,10))
plt.title('广东省不同季节空气质量情况')
plt.xlabel('AQI')
plt.ylabel('季节')
plt.xlim(50)
plt.legend('AQI')
plt.grid(linestyle=':', color='w')
plt.show();

广东省冬季AQI较高,空气质量较差,夏季AQI较低,空气质量较好。

问题2.4:广东省空气质量在全国的排名??

df_gd[['省份', '所属省份空气质量排名']].head(1)
省份 所属省份空气质量排名
53971 广东省 6

广东省空气质量全国排名第6

3.全市范围(深圳市为例):

问题3.1:深圳市的主要污染物是什么?

df_sz = df[df['cityname'] == '深圳']
df_sz_pollutant = df_sz[df_sz['aqi'] >= 100][['aqi', 'pm2_5', 'pm10', 'so2', 'no2', 'co', 'o3']]
sns.regplot(x='pm2_5', y='aqi', data=df_sz_pollutant);

sns.regplot(x='pm10', y='aqi', data=df_sz_pollutant);

sns.regplot(x='so2', y='aqi', data=df_sz_pollutant);

sns.regplot(x='no2', y='aqi', data=df_sz_pollutant);

sns.regplot(x='co', y='aqi', data=df_sz_pollutant);

sns.regplot(x='o3', y='aqi', data=df_sz_pollutant);

plt.figure(figsize=(15,5))
sns.heatmap(df_sz_pollutant.corr(), vmax=1, square=False, annot=True, linewidth=1)
plt.yticks(rotation=0);

深圳市主要的污染物是pm2.5、pm10、so2、co。与广东省主要污染物不同的是,深圳市的no2对空气质量的影响不大,但no2与pm2.5、pm10、co三个指标有较强的正相关关系。

问题3.2:深圳空气质量在全国的排名?

df_sz[['cityname', '城市空气质量全国排名']].head(1)
cityname 城市空气质量全国排名
433042 深圳 38

深圳市空气质量在全国城市空气质量排名38位

df_sz.groupby('空气质量').time.count().plot.bar(figsize=(10,5))
plt.xticks(rotation=0)
plt.ylabel('次数')
plt.title('2013-2018深圳空气质量次数图')
plt.show();
print('平均AQI为:%.f\n\n' % (df_sz.aqi.mean()), df_sz.groupby('空气质量').time.count())

平均AQI为:55空气质量
优级      871
良好      745
轻度污染     79
中度污染      8
重度污染      0
重污染       0
Name: time, dtype: int64

深圳平均AQI为55,接近优级水平。2013年~2018年空气质量有871次优,745次良好,79次轻度污染,8次中度污染,没有重度污染和重污染。

问题3.3:深圳哪个季节的污染最严重?

pd.DataFrame(df_sz.groupby('season').aqi.mean().sort_values()).plot.barh(figsize=(15,10))
plt.title('深圳不同季节空气质量情况')
plt.xlabel('AQI')
plt.ylabel('季节')
plt.xlim(40)
plt.legend('AQI')
plt.grid(linestyle=':', color='w')
plt.show();

深圳冬季空气质量相对较差,平均AQI约为65,夏季空气质量较好,空气质量优级。

3.5 分析结果
根据2013年6月~2018年7月全国空气质量数据得出以下结论:

  • 中国的北部内陆地区以及西北部地区空气质量较差,沿海地区及高原地区空气质量较好;
  • 全国空气质量最差的10个省份(排名分先后,差-好):河北省、北京、河南省、天津、新疆、山东、山西、陕西、江苏、湖北
  • 全国空气质量最好的10个省份(排名分先后,好-差):海南、云南、福建、贵州、西藏、广东、广西、黑龙江、江西、青海
  • 全国空气质量最差的10个城市/地区(排名分先后,差-好):和田地区、喀什地区、保定、邢台、阿克苏地区、石家庄、克牧勒苏州、衡水、邯郸
  • 全国空气质量最好的10个城市/地区(排名分先后,好-差):三亚、迪庆州、海口、丽江、黔西南州、怒江州、阿坝州、楚雄州、大理州、普洱
  • 空气质量最差省份的主要污染物是pm10、so2、no2。so2与no2两者正相关;
  • 空气质量最差城市的主要污染物是pm2.5、pm10、so2、no2。so2与no2之间、pm2.5与pm10、so2、no2之间有较强的正相关关系;
  • 全国空气质量冬季时最差,平均AQI为101.6(轻度污染),夏季时最好,平均AQI为71.9(良好);
  • 2015年后全国空气质量有很大改善,特别是2016年~2018年,平均AQI约为80,较2013年下降40%
  • 广东省最主要的污染物是pm2.5、pm10,其次是so2、no2、co;
  • 广东省21个城市中,佛山、东莞、广州空气质量最差,AQI分别为73、73.5、74.2,空气质量均为良;
  • 广东省冬季AQI较高,空气质量较差,夏季AQI较低,空气质量较好;
  • 广东省空气质量全国排名第6
  • 深圳市主要的污染物是pm2.5、pm10、so2、co
  • 深圳市空气质量在全国城市空气质量排名38位
  • 深圳平均AQI为55,接近优级水平。2013年~2018年空气质量有871次优,745次良好,79次轻度污染,8次中度污染,没有重度污染和重污染;
  • 深圳冬季空气质量相对较差,平均AQI约为65,夏季空气质量较好,空气质量优级。

4. 建议

关于空气污染物的控制:

  • 省级层面上建议注重控制pm10、so2、no2
  • 市级层面上建议注重控制pm2.5、pm10、so2、no2
  • 对于广东省,建议主要控制pm2.5和pm10,适当关注so2、no2、co的排放
  • 对于深圳市,建议主要控制pm2.5、pm10、so2、co,适当关注no2的排放

基于Python的2013-2018全国城市空气质量分析相关推荐

  1. Python爬取国家数据中心环境数据(全国城市空气质量小时报)并导入csv文件

    1.开发环境: python 3.5   + fiddler 4 (抓包工具)+ 火狐浏览器 + idea 2.分析要爬取的页面 2.1  首页  数据中心  点击 全国城市空气质量小时报   查看 ...

  2. python空气质量分析与预测_干货!如何用 Python+KNN 算法实现城市空气质量分析与预测?...

    原标题:干货!如何用 Python+KNN 算法实现城市空气质量分析与预测? 作者 | 李秋键 责编 | 伍杏玲 封图 | CSDN 付费下载自东方 IC 出品 | CSDN(ID:CSDNnews) ...

  3. 全国城市空气质量实时发布平台数据抓取采集获取

    全国城市空气质量实时发布平台(https://air.cnemc.cn:18007/   原http://106.37.208.233:20035/)数据抓取采集获取,数据处理方法 import or ...

  4. 全国城市空气质量查询,PM2.5查询

    一.接口介绍 提供全国城市空气质量实时数据,每小时更新.目前支持全国300+城市,可查询监测点数据.实时查询空气质量.小时粒度.实时给出空气质量AQI指数,并给出空气质量级别和首要污染物.广泛应用于交 ...

  5. 全国城市空气质量查询 PM2.5查询

    一.接口介绍 提供全国城市空气质量实时数据,每小时更新.目前支持全国300+城市,可查询监测点数据.实时查询空气质量.小时粒度.实时给出空气质量AQI指数,并给出空气质量级别和首要污染物. 二.功能体 ...

  6. 城市空气质量分析与预测

    城市空气质量分析与预测 一.AQI分析与预测 1.背景信息 2.任务说明 3.数据集描述 二.数据分析流程 基本流程 三.读取数据 1.导入相关的库 2.加载数据集 四.数据清洗 1.缺失值 1.1. ...

  7. 全国城市空气质量实时数据(PM2.5)实时下载

    国家公布了"http://113.108.142.147:20035/emcpublish/"空气质量实时发布平台,WCF服务地址为"http://113.108.142 ...

  8. 全国主要城市空气质量

    效果: 代码: <!DOCTYPE html> <head> <meta charset="utf-8"> <title>全国城市空 ...

  9. 城市空气质量(AQI)数据爬虫

    全国各城市(网页上有的)空气质量爬虫,包括城市名称,AQI等信息,保存为.csv文件格式 网址首页:https://www.aqistudy.cn/historydata/index.php 首先是获 ...

最新文章

  1. [教程]MongoDB 从入门到进阶 (概要 以及 高级索引篇 TimeToLive GeoNear)
  2. React学习(1)——JSX语法与React组件
  3. 链表反转2(Reverse Linked List II)
  4. 局部页面切换url为什么不变_python爬虫 - 翻页url不变网页的爬虫探究
  5. 吉他谱----see you again
  6. pagecontrol
  7. python替换txt指定内容_python 实现类似sed命令的文件内容替换
  8. socket可以写成单例嘛_精读设计模式 Singleton 单例模式
  9. 程序员的算法课(8)-贪心算法:理解霍夫曼编码
  10. block引用c语言数组,Block在ARC和MRC下的使用分析
  11. matlab r2016a破解版安装
  12. 国产图形化的msf——Viper初体验
  13. 网络安全——Burpsuite
  14. java零基础学习第七天
  15. Ubuntu 修改DNS
  16. 微信退款服务器系统失败怎么办,微信缴费失败怎么退款?能退回吗?
  17. 震惊!为了欣赏后宫的3000佳丽,我竟然用Python做出了一面墙?
  18. 怎么把cad的图导入ps_CAD图纸导入Photoshop的方法有哪些?
  19. mysql excel 数据处理_将excel的数据进行sql处理
  20. echarts 时间曲线图_web前端显示设备实时温度,ECharts实现温度折线图,实时动态温度曲线图生成...

热门文章

  1. 计算机专业进铁路工资待遇,铁道通信信号工资一般是多少
  2. python模拟报数游戏有n个人围成一圈,从0到n-1按顺序编号,从第一个人开始从1到k报数,报到k的人推出圈子,然后圈子缩小,从下个人继续游戏,问最后留下来的是几号?
  3. iPhone越狱开发--Cydia起源篇
  4. LeetCode刷题之路:11. 盛最多水的容器
  5. .DS_Store文件
  6. 微信小程序——短链接详解
  7. 域名备案与空间备案有什么关系吗,域名备案又是怎么回事?
  8. 密码学安全强随机数生成器_强密码学简介
  9. 实现移动曲面拟合法的数字高程模型内插,数据格式X、Y、Z,数据量大,使用C++语言实现...
  10. 关于ElasticSearch新建文档的姿势