2023年Weather_trends:风速与能见度关联分析及缺失值处理的BigQuery查询
BigQuery查询:探究2023年风速与能见度的关联(处理缺失值)
核心需求说明
针对2023年Weather_trends数据集,排除风速(Wind Speed)和能见度(Visibility)的缺失记录,分析两者的关联关系。
1. 清理后的数据查询(基础数据集)
先筛选出有效数据,为后续分析做准备:
SELECT CAST(`Wind Speed` AS INT64) AS wind_speed, CAST(Visibility AS INT64) AS visibility FROM `your-project.your-dataset.Weather_trends` WHERE -- 筛选2023年数据,替换date_column为实际日期字段名 EXTRACT(YEAR FROM date_column) = 2023 -- 排除风速或能见度的缺失值 AND `Wind Speed` IS NOT NULL AND Visibility IS NOT NULL
2. 计算皮尔逊相关系数(量化关联程度)
用BigQuery内置的CORR函数直接计算两个字段的线性相关系数:
SELECT CORR(CAST(`Wind Speed` AS INT64), CAST(Visibility AS INT64)) AS wind_visibility_correlation FROM `your-project.your-dataset.Weather_trends` WHERE EXTRACT(YEAR FROM date_column) = 2023 AND `Wind Speed` IS NOT NULL AND Visibility IS NOT NULL
- 系数接近1:正强相关;接近-1:负强相关;接近0:无明显线性关联
3. 分组统计(按风速区间看能见度变化)
按风速区间分组,统计每组的平均能见度和记录数,直观观察趋势:
SELECT -- 将风速按10单位为区间分组(可根据数据分布调整区间大小) FLOOR(CAST(`Wind Speed` AS INT64)/10)*10 AS wind_speed_range, COUNT(*) AS record_count, AVG(CAST(Visibility AS INT64)) AS avg_visibility FROM `your-project.your-dataset.Weather_trends` WHERE EXTRACT(YEAR FROM date_column) = 2023 AND `Wind Speed` IS NOT NULL AND Visibility IS NOT NULL GROUP BY wind_speed_range ORDER BY wind_speed_range
注意事项
- 替换
your-project.your-dataset为你的BigQuery项目和数据集名称 - 若日期字段是字符串格式,需用
PARSE_DATE转换后提取年份,例如:EXTRACT(YEAR FROM PARSE_DATE('%Y-%m-%d', date_string)) = 2023 - 若缺失值是空白字符串而非
NULL,需补充过滤条件:ANDWind Speed!= '' AND Visibility != '' - 若
Wind Speed/Visibility是浮点型,可保留原类型(去掉CAST),不影响关联分析
内容的提问来源于stack exchange,提问作者Mohankumar
相关产品推荐
相关产品推荐

