PM2.5数据的清洗,汇总与制作散点图(含源数据链接)

相关数据:

北京空气质量(2012-2018年)

点击打开链接

全国空气质量历史数据 | 北京市空气质量历史数据(每周更新)

点击打开链接

相关程序:
程序:(补全单个csv中的数据,用的是该天每个站点的中位数,并整理成date,type,mean三类的csv文件)
# -*- coding: UTF-8 -*-
import pandas as pd
import datetime
import csv

def writer_data_extra(date,type,mean):
    csvfile = open('.\\beijing_20180101-20180324/aqi1.csv', 'a', newline='')
    writer = csv.writer(csvfile)
    info = [date,type,mean]
    writer.writerow(info)
    csvfile.close()

def run_extra():
    begin = datetime.date(2018,1,1)
    end = datetime.date(2018,3,24)
    d = begin
    delta = datetime.timedelta(days=1)
    q = 0
    while d <= end:
        num = d.strftime('%m%d')
        filename = pd.read_csv('./beijing_20180101-20180324/beijing_extra_2018' + num + '.csv')
        for j in range(0, 8, 2):
            nf = filename[j::8]
            #奇数的语句print x[::2]
            #偶数的语句print x[1::2]
            for i in nf.columns[3:]:
                a = nf[str(i)].median()
                nf.fillna(a, inplace=True)
            date = list(set(nf['date']))[0]
            type = list(set(nf['type']))[0]
            sum = 0
            for i in nf.columns[3:]:
                b = nf[str(i)].mean()
                sum += b
            mean = round(sum / len(nf.columns[3:]), 1)
            # print('date:{} type:{} val:{}'.format(date, type, mean))
            writer_data_extra(date, type, mean)
            q += 1
            if q % 10 == 0:
                print("正在转录...")
        d += delta
    print("**********转录完毕**************")

if __name__ == '__main__':
    run_extra()

程序:将两个表根据相同项(date)合并

import  pandas as pd
import csv

def writer_data_all(date,type,val):
    csvfile = open('.\\beijing_20180101-20180324/aqi_all.csv', 'a', newline='')
    writer = csv.writer(csvfile)
    # writer.writerow(('date', 'type', 'val'))
    info = [date,type,val]
    writer.writerow(info)
    csvfile.close()

def main():
    filename1 = pd.read_csv('./beijing_20180101-20180324/aqi1.csv')
    filename2 = pd.read_csv('./beijing_20180101-20180324/aqi2.csv')
    fn3 = pd.concat([filename1,filename2])
    fn4= fn3.sort_values(by='date',ascending=True).reset_index(drop=True)
    print(fn4.T)


if __name__ == '__main__':
    main()

程序:制作散点图

import pandas as pd
import matplotlib.pyplot as plt

def main():
    df = pd.read_csv('./data.csv')
    list = ['NO2', 'SO2', 'O3', 'CO', 'PM10', 'AQI']
    for i in list:
        item = df[i]
        PM2_5 = df['PM2.5']

        plt.scatter(item,PM2_5)
        plt.title(i + ' And PM2.5')
        plt.xlabel(i)
        plt.ylabel('PM2.5')
        plt.savefig('./'+ i + 'AndPM2.5.png')
        plt.show()

if __name__ == '__main__':
    main()

效果:






  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值