当前位置: 首页 > news >正文

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-AIR(China 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³同上

两个最容易踩坑的点

  1. CO的单位特殊:其他污染物都是微克/立方米(μg/m³),只有CO是毫克/立方米(mg/m³),数值通常只有0.3~1.5左右,千万别和其他指标混为一谈。
  2. O3有三套口径:实时值(O3)、8小时滑动平均(O3_8h)、以及参与AQI计算的24小时滑动(O3_8h_24h),研究臭氧污染时建议优先使用O3_8h。

CN-AIR CSV数据格式详解:列和行都代表什么 📐

打开任意一个china_cities_*.csv,第一行表头长这样:

date,hour,type,北京,天津,石家庄,唐山,秦皇岛,...

文件采用"宽表"结构,逻辑非常清晰:

  • date列:日期,格式为YYYYMMDD,例如20240101
  • hour列:小时,取值0-23,表示该小时整点
  • type列:数据类型,即上表的15项指标之一
  • 后续所有列:每个城市一列,列名就是城市名(如北京、上海、广州)

也就是说,同一时刻、同一指标、不同城市,排在同一行。想看"2024年1月1日0点北京的AQI",就是找date=20240101, hour=0, type=AQI那一行的"北京"列。

一行真实数据长什么样

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_name='city', value_name='value' )

转成长表后,每一行就是"某天某小时某城市某指标的一个观测值",配合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_index=True) 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 ❓

Q1:AQI是怎么算出来的?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宽表结构:date(YYYYMMDD)+hour(0-23)+type(15项指标)+ 城市列
  • 📊 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),仅供参考

http://www.jsqmd.com/news/1406120/

相关文章:

  • BiliBili-UWP第三方客户端实测:Windows 10/11刷B站的3个理由与完整安装指南
  • 亳州食品检测行业如何选择GEO服务商?本地代理加盟靠谱推荐与实战指南 - 科技快讯
  • 2026年好得睐等牛排半成品菜合作商盘点及挑选攻略 - 拜了拜了
  • Wand-Enhancer一周实测:不花一分钱解锁Wand专业版,2小时限制从此失效
  • 2026多平台快递单号批量查询工具测评:主流品牌优劣势与场景选型指南 - 小富子呀
  • 2026中国鱼油软胶囊代工产业综合评测:7家头部企业实力盘点 合规与纯度成行业分水岭 - 互联网科技品牌测评
  • 【实战】告别Prompt炼丹:用“自指算法“给大模型套上数学紧箍咒
  • Fudoki 安全实践:纯前端应用如何零漏洞防范 XSS 攻击?
  • 告别Office依赖,在线制作PPT效率翻倍:PPTist免费演示文稿编辑器实战指南
  • Windows系统文件sti_ci.dll丢失找不到问题解决
  • 3步免费解锁WeMod Pro:开源增强工具Wand-Enhancer上手全指南
  • AI 工程实战:一套可复用的提示词库与质量门禁,如何让 AI 辅助研发「可验证、可沉淀」
  • 96个相机位一句指令搞定:Qwen-Image-Edit-2511多视角LoRA机制全解析
  • 大数据毕设新颖的题目怎么做
  • 广州防水补漏市场深度调研报告(2026)|本地靠谱服务商盘点推荐 - 家居避坑指南
  • 2026乌鲁木齐房屋漏水维修避坑指南|正规修缮与乱象对比,少花冤枉钱​ - 筑宅安
  • Harepacker-resurrected实战指南:WZ文件编辑器与地图设计一次搞定
  • 2026商城小程序怎么选?几千块靠谱实用平台大汇总 - 小富子呀
  • 百度网盘限速破解插件BaiduNetdiskPlugin-macOS安装实战:从权限报错到SVIP满速下载
  • 如何让NVIDIA-Nemotron-3.5-Lightning-30B-A3B-mxfp8输出更精准?10个生成参数调优技巧
  • 宁波工商注册服务行业怎么做GEO优化?本地靠谱服务商与代理加盟推荐指南 - 科技快讯
  • 为什么每个JS开发者都应该关注e18e?Cleanup、Speedup、Levelup三大支柱一文讲透
  • 很多人找律师找错方向,一文看懂深圳律师实际服务范围 - 厚道搬家
  • 如何用免费的SRWE实时窗口编辑器给游戏窗口改分辨率:从入门到玩出花
  • 键盘缺颗键帽只能买整排?36款免费Cherry MX键帽3D模型,从R1到R4自己打
  • Windows系统文件StorageContextHandler.dll丢失找不到问题解决
  • 2026年广东静音床垫厂家推荐 **参考指南 - 产品推荐官
  • #湖北乡村别墅加盟怎么选?返乡创业做乡墅生意,先看清这4点 - 品牌企业推荐
  • Wand-Enhancer 终极指南:3步永久免费解锁Wand专业版,彻底告别2小时限制
  • 性能优化实战:彻底解决 PyQt-Frameless-Window 亚克力窗口拖动卡顿问题