CN-AIR数据格式完全解读:AQI、PM2.5、O3等15项指标一次讲清

发布时间:2026/8/16 17:46:48
CN-AIR数据格式完全解读:AQI、PM2.5、O3等15项指标一次讲清 CN-AIR数据格式完全解读AQI、PM2.5、O3等15项指标一次讲清【免费下载链接】CN-AIR项目地址: https://ai.gitcode.com/GewisLab/CN-AIR想研究中国空气质量却不知道数据文件里每列每行代表什么别担心这篇CN-AIR数据格式完全解读就是为你准备的。CN-AIR是一份覆盖全国主要城市的空气质量历史数据集时间跨度从2014年一直到2026年数据源自中国环境监测总站CNEMC。本文将带你一次看清CSV文件中的AQI、PM2.5、O3等15项指标从字段含义到单位换算从缺失值处理到pandas读取方法新手也能轻松上手。CN-AIR是什么先认识这份空气质量数据集 CN-AIRChina Air Quality Historical Dataset是一个开源空气质量数据集包含两类数据城市级数据以城市为单位的平均浓度约370个城市站点级数据以具体监测站点为单位颗粒度更细数据按年份分目录存放比如城市_20240101-20241231/、站点_20140513-20141231/每个目录下是一天的CSV文件命名规则一目了然china_cities_20240101.csv代表2024年1月1日的城市数据。 小知识一个CSV文件约390KB一天24小时、15项指标每天约360行数据。整个项目累计超过4300个CSV文件堪称国内少有的长跨度空气质量开源数据集。15项指标分别是什么一张表全看懂 CN-AIR的type字段一共包含15种数据类型1个综合指数AQI 14个污染物浓度指标。很多新手疑惑为什么PM2.5有两个字段答案就在后缀里——带_24h的是24小时滑动平均值不带的是整点实时值。type字段中文含义单位说明AQI空气质量指数无量纲综合六项污染物计算的指数PM2.5细颗粒物实时浓度μg/m³可吸入肺部的细颗粒物PM2.5_24hPM2.5 24小时滑动均值μg/m³用于AQI评价的浓度PM10可吸入颗粒物实时浓度μg/m³粒径≤10μm的颗粒物PM10_24hPM10 24小时滑动均值μg/m³同上SO2二氧化硫实时浓度μg/m³煤烟型污染代表物SO2_24h二氧化硫24小时滑动均值μg/m³同上NO2二氧化氮实时浓度μg/m³机动车尾气主要成分NO2_24h二氧化氮24小时滑动均值μg/m³同上O3臭氧实时浓度μg/m³夏季光化学污染主角O3_24h臭氧24小时滑动均值μg/m³同上O3_8h臭氧8小时滑动平均μg/m³衡量臭氧健康影响的标准O3_8h_24hO3_8h的24小时滑动均值μg/m³参与AQI计算的最终值CO一氧化碳实时浓度mg/m³⚠️ 注意单位是mg/m³CO_24h一氧化碳24小时滑动均值mg/m³同上两个最容易踩坑的点CO的单位特殊其他污染物都是微克/立方米μg/m³只有CO是毫克/立方米mg/m³数值通常只有0.3~1.5左右千万别和其他指标混为一谈。O3有三套口径实时值O3、8小时滑动平均O3_8h、以及参与AQI计算的24小时滑动O3_8h_24h研究臭氧污染时建议优先使用O3_8h。CN-AIR CSV数据格式详解列和行都代表什么 打开任意一个china_cities_*.csv第一行表头长这样date,hour,type,北京,天津,石家庄,唐山,秦皇岛,...文件采用宽表结构逻辑非常清晰date列日期格式为YYYYMMDD例如20240101hour列小时取值0-23表示该小时整点type列数据类型即上表的15项指标之一后续所有列每个城市一列列名就是城市名如北京、上海、广州也就是说同一时刻、同一指标、不同城市排在同一行。想看2024年1月1日0点北京的AQI就是找date20240101, hour0, typeAQI那一行的北京列。一行真实数据长什么样20240101,0,AQI,55,78 20240101,0,PM2.5,29,57 20240101,0,PM2.5_24h,12,28 20240101,0,CO,0.51,0.73上面是2024年1月1日0点北京、天津的部分数据北京AQI为55良PM2.5为29 μg/m³CO为0.51 mg/m³。数值是小数直接用float读取即可。 城市数量小提示2014年数据约367个城市到2024年已扩展到约375个城市。不同年份的列数略有差异做跨年分析时建议以城市名为准做宽表转长表而不是依赖列位置。缺失值长什么样如何处理空数据 ⚠️真实监测数据难免有缺失CN-AIR里缺失值以空值形式存在比如20240101,0,O3_24h,,中北京列是空的。常见处理姿势pandas读取pd.read_csv()会自动把空值识别为NaN直接可用df.isna().sum()统计缺失冬季O3数据容易缺因为冬天气温低、臭氧浓度低部分站点在冬季O3_8h_24h可能连续缺测研究建议做时间序列分析前先按城市指标查看缺失比例缺失过多的城市建议剔除或插值如何用pandas快速读取CN-AIR数据 CN-AIR数据是标准CSV用pandas一行就能读取import pandas as pd df pd.read_csv(城市_20240101-20241231/城市_20240101-20241231/china_cities_20240101.csv) print(df.head())如果要做跨城市、跨指标的分析建议转成长表更顺手df_long df.melt( id_vars[date, hour, type], var_namecity, value_namevalue )转成长表后每一行就是某天某小时某城市某指标的一个观测值配合groupby可以轻松做任意维度的统计比如计算全年各城市PM2.5年均值、绘制某城市AQI逐小时曲线等。批量合并多年数据的技巧项目按年份分目录存放需要全量分析时可以用glob批量读取再合并import glob, pandas as pd files glob.glob(城市_*/城市_*/*.csv) dfs [pd.read_csv(f) for f in files] combined pd.concat(dfs, ignore_indexTrue) combined.to_parquet(china_cities_combined.parquet)转换后的Parquet文件读取更快、体积更小适合反复加载分析。CN-AIR目录结构与数据范围速查 ️目录内容城市_20140513-20141231/2014年城市级数据5月13日起城市_20150101-20151231/2015年城市级数据...逐年类推城市_20260101-20260418/2026年城市级数据站点_20140513-20141231/2014年站点级数据站点_20260101-20260418/2026年站点级数据时间范围2014-05-13 至 2026-04-23超过12年数据来源中国环境监测总站CNEMC许可证MIT开源协议可自由用于学习研究想下载全部数据克隆仓库即可git clone https://gitcode.com/GewisLab/CN-AIR.git cd CN-AIR由于数据量较大仓库使用Git LFS管理大文件克隆前记得先执行git lfs install。常见问题FAQ ❓Q1AQI是怎么算出来的AQI由PM2.5、PM10、SO2、NO2、O3、CO六项污染物分别计算分指数IAQI后取最大值。其中O3使用8小时滑动平均值参与计算这也就是数据里出现O3_8h和O3_8h_24h的原因。Q2实时值和24小时值有什么区别实时值是整点瞬时浓度_24h是过去24小时的滑动平均更平滑、更能代表一段时间的暴露水平也是官方评价空气质量等级时采用的数值。Q3数据是北京时间吗是的hour字段按北京时间东八区记录研究时可放心直接使用。Q4能用这份数据做论文研究吗可以用于学术研究数据来自官方监测站整理但项目README也提示数据可能存在缺失或误差使用时请自行验证重要结论建议与官方发布数据交叉核对。总结CN-AIR数据格式一次掌握 ✅回顾一下关键要点 CSV宽表结构dateYYYYMMDDhour0-23type15项指标 城市列 15项指标 AQI 14个污染物浓度字段注意CO是mg/m³、O3有三套口径⏰ 每文件24小时×15指标约370个城市列跨2014-2026年 pandas一行读取melt转长表后分析更灵活掌握了CN-AIR的数据格式你就可以放心地用这份超过12年的空气质量数据集做趋势分析、城市对比、健康效应研究了。如果文章对你有帮助欢迎动手跑一遍上面的读取代码数据格式理解得快分析之路就走得稳。祝大家都能用数据看清空气【免费下载链接】CN-AIR项目地址: https://ai.gitcode.com/GewisLab/CN-AIR创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考