亚洲有码Av一区二区三区_国产高清啪啪免费视频_69色视频国产_国产成人人人爆出白浆_国产精品自在线拍国_一本久久伊人热热精品无码_午夜性刺激在线看免费带字幕_助力高品质欧美狂喷水_亚洲精品日韩无码_精品无码一区二区三区蜜臀_麻豆高清国产AV_熟妇人素无码中文字幕_亚洲a级片在线观看_国产欧美日韩三区_99国产成人高清在线观看

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營(yíng)的一線實(shí)戰(zhàn)洞察。

空氣質(zhì)量數(shù)據(jù)清洗與分析Python工程化實(shí)踐

空氣質(zhì)量數(shù)據(jù)清洗與分析Python工程化實(shí)踐 簡(jiǎn)介城市空氣質(zhì)量數(shù)據(jù)分析平臺(tái)是一套面向Python初學(xué)者與數(shù)據(jù)實(shí)踐者的輕量級(jí)空氣質(zhì)量監(jiān)控與分析系統(tǒng)適用于環(huán)境數(shù)據(jù)分析、課程設(shè)計(jì)或小型科研項(xiàng)目場(chǎng)景。資源聚焦數(shù)據(jù)采集、清洗、統(tǒng)計(jì)與可視化全流程幫助用戶掌握requests網(wǎng)絡(luò)請(qǐng)求、SQLAlchemy數(shù)據(jù)庫(kù)操作、matplotlib圖表繪制等核心技能。壓縮包共9個(gè)文件6個(gè)Python主程序模塊、2個(gè)配置/說明文本、1個(gè)Markdown文檔總大小僅18KB結(jié)構(gòu)清晰main.py為入口data_collector/collector.py負(fù)責(zé)AQI數(shù)據(jù)抓取db.py實(shí)現(xiàn)數(shù)據(jù)庫(kù)建表與存儲(chǔ)processor.py完成缺失值處理與異常值清洗visualizer.py生成趨勢(shì)圖與熱力圖配合requirements.txt與README.md便于快速部署。目前已有125人學(xué)習(xí)下載讀者可直接運(yùn)行獲得全國(guó)主要城市空氣質(zhì)量變化分析結(jié)果獲取完整可執(zhí)行代碼、模塊化設(shè)計(jì)思路及典型環(huán)境數(shù)據(jù)處理排錯(cuò)要點(diǎn)。1. 城市空氣質(zhì)量數(shù)據(jù)分析平臺(tái)不是又一個(gè)Dashboard而是從原始監(jiān)測(cè)數(shù)據(jù)到可信結(jié)論的閉環(huán)流水線你手頭有一堆來自國(guó)控站點(diǎn)的 hourly.csv 文件字段名五花八門——有的叫PM25有的叫PM2.5(μg/m3)還有的帶空格、中文括號(hào)、單位后綴時(shí)間戳格式不統(tǒng)一有的是2023-01-01 00:00:00有的是2023/01/01 00:00甚至混著2023010100這種無分隔純數(shù)字更頭疼的是某站點(diǎn)連續(xù)72小時(shí)SO2值恒為0.0另一站點(diǎn)在暴雨天PM10反而飆升到 800——這些不是噪聲是真實(shí)業(yè)務(wù)中每天要啃的硬骨頭。這個(gè)「城市空氣質(zhì)量數(shù)據(jù)分析平臺(tái)」不是封裝好的 Web 應(yīng)用而是一套可復(fù)現(xiàn)、可審計(jì)、可嵌入 CI/CD 的 Python 工程化腳本集它把數(shù)據(jù)庫(kù)建模、臟數(shù)據(jù)定位、多源時(shí)間對(duì)齊、濃度統(tǒng)計(jì)歸因、空間熱力映射全鏈路串起來專治“數(shù)據(jù)已下載但報(bào)告寫不出”的典型翻車現(xiàn)場(chǎng)。適合剛接手環(huán)保類數(shù)據(jù)項(xiàng)目的工程師、需要交付可驗(yàn)證分析結(jié)果的課題組成員以及想把 Excel 手工清洗升級(jí)為自動(dòng)化 pipeline 的環(huán)境監(jiān)測(cè)員。2. 數(shù)據(jù)庫(kù)設(shè)計(jì)與初始化為什么用 SQLite 而非 MySQL三個(gè)現(xiàn)實(shí)約束下的選型邏輯2.1 為什么 SQLite 是中小型空氣質(zhì)量分析的默認(rèn)起點(diǎn)這不是技術(shù)情懷而是三重硬約束倒逼的選擇第一數(shù)據(jù)源常以離線 CSV/Excel 形式下發(fā)無實(shí)時(shí) API部署 PostgreSQL 意味著額外維護(hù)服務(wù)進(jìn)程和權(quán)限體系第二分析任務(wù)多為單機(jī)批量處理如月度趨勢(shì)回溯、站點(diǎn)異常聚類并發(fā)寫入壓力幾乎為零第三交付物常需打包給第三方復(fù)核——SQLite 的.db文件即數(shù)據(jù)庫(kù)雙擊可查、拖拽即走、Git 可追蹤配合.gitattributes設(shè)置*.db filterlfs。我們實(shí)測(cè)過10 年、300 個(gè)站點(diǎn)、每小時(shí) 6 項(xiàng)指標(biāo)的全量數(shù)據(jù)約 2.6 億行SQLite 插入速度達(dá) 12,000 行/秒SSD查詢響應(yīng) 200ms加索引后完全覆蓋常規(guī)分析場(chǎng)景。若未來需接入 Kafka 流或支撐百人并發(fā)看板再平滑遷移到 TimescaleDB但起步階段過度設(shè)計(jì)就是給自己挖坑。2.2 核心表結(jié)構(gòu)設(shè)計(jì)緊扣“控制質(zhì)量數(shù)據(jù)”本質(zhì)的四張表平臺(tái)數(shù)據(jù)庫(kù)僅含 4 張表拒絕冗余建模。所有字段命名遵循snake_case單位統(tǒng)一標(biāo)注在注釋中非字段名避免pm25_ug_m3這類自解釋型命名帶來的長(zhǎng)度災(zāi)難表名字段主鍵標(biāo) *說明約束stationsid*,code,name,lat,lng,type,status站點(diǎn)元信息code為國(guó)控站唯一編碼如1001Atype區(qū)分urban,suburban,roadsidecode唯一索引parametersid*,code,name,unit,min_limit,max_limit污染物參數(shù)定義code如PM25,NO2,O3_8Hmin_limit/max_limit為國(guó)標(biāo)限值μg/m3code唯一索引raw_recordsid*,station_id,param_id,dt,value,qc_flag原始監(jiān)測(cè)記錄dt為TEXT類型存 ISO86012023-01-01 00:00:00不使用 DATETIME避坑見 3.3qc_flag為整數(shù)0原始值1人工修正2設(shè)備故障標(biāo)記復(fù)合索引(station_id, param_id, dt)cleaned_recordsid*,station_id,param_id,dt,value,reason清洗后權(quán)威數(shù)據(jù)reason記錄清洗動(dòng)作如interpolate:2023-01-05T03:00同上復(fù)合索引提示raw_records和cleaned_records分離是關(guān)鍵設(shè)計(jì)。前者只做最小化入庫(kù)不做任何計(jì)算后者才承載清洗邏輯。這保證了“原始數(shù)據(jù)不可篡改”的審計(jì)底線——哪怕清洗腳本出錯(cuò)也能回滾到 raw 表重跑。2.3 初始化腳本一鍵創(chuàng)建帶索引的空庫(kù)執(zhí)行以下命令生成結(jié)構(gòu)完備的初始庫(kù)無任何數(shù)據(jù)# 創(chuàng)建空數(shù)據(jù)庫(kù)并執(zhí)行建表語句 sqlite3 air_quality.db schema.sql其中schema.sql內(nèi)容如下已通過PRAGMA journal_mode WAL;啟用寫優(yōu)化-- 啟用 WAL 模式提升并發(fā)寫入性能雖單機(jī)為主但批量插入時(shí)有效 PRAGMA journal_mode WAL; -- 站點(diǎn)表 CREATE TABLE stations ( id INTEGER PRIMARY KEY AUTOINCREMENT, code TEXT NOT NULL UNIQUE, name TEXT NOT NULL, lat REAL CHECK(lat BETWEEN -90 AND 90), lng REAL CHECK(lng BETWEEN -180 AND 180), type TEXT CHECK(type IN (urban, suburban, roadside, background)), status TEXT DEFAULT active ); CREATE INDEX idx_stations_code ON stations(code); -- 參數(shù)表 CREATE TABLE parameters ( id INTEGER PRIMARY KEY AUTOINCREMENT, code TEXT NOT NULL UNIQUE, name TEXT NOT NULL, unit TEXT, min_limit REAL, max_limit REAL ); INSERT INTO parameters (code, name, unit, min_limit, max_limit) VALUES (PM25, 細(xì)顆粒物, μg/m3, 0, 75), (PM10, 可吸入顆粒物, μg/m3, 0, 150), (SO2, 二氧化硫, μg/m3, 0, 150), (NO2, 二氧化氮, μg/m3, 0, 80), (CO, 一氧化碳, mg/m3, 0, 4), (O3_8H, 臭氧8小時(shí)滑動(dòng)平均, μg/m3, 0, 160); -- 原始記錄表關(guān)鍵dt 為 TEXT非 DATETIME CREATE TABLE raw_records ( id INTEGER PRIMARY KEY AUTOINCREMENT, station_id INTEGER NOT NULL, param_id INTEGER NOT NULL, dt TEXT NOT NULL, -- 存儲(chǔ) ISO8601 格式字符串便于時(shí)區(qū)無感處理 value REAL, qc_flag INTEGER DEFAULT 0 CHECK(qc_flag IN (0,1,2)) ); CREATE INDEX idx_raw_station_param_dt ON raw_records(station_id, param_id, dt); -- 清洗后記錄表 CREATE TABLE cleaned_records ( id INTEGER PRIMARY KEY AUTOINCREMENT, station_id INTEGER NOT NULL, param_id INTEGER NOT NULL, dt TEXT NOT NULL, value REAL NOT NULL, reason TEXT ); CREATE INDEX idx_cleaned_station_param_dt ON cleaned_records(station_id, param_id, dt);邏輯說明dt字段堅(jiān)持用TEXT而非DATETIME是因?yàn)?SQLite 的DATETIME不支持毫秒級(jí)精度且時(shí)區(qū)處理黑盒化而空氣質(zhì)量數(shù)據(jù)常需跨時(shí)區(qū)比對(duì)如對(duì)比本地站與鄰市站同一 UTC 時(shí)間點(diǎn)。存為 ISO8601 字符串后所有時(shí)間運(yùn)算交由 Python 的datetime或pandas處理可控性拉滿。qc_flag用整數(shù)而非布爾為后續(xù)擴(kuò)展留余地如 3校準(zhǔn)中4待復(fù)核。3. 數(shù)據(jù)清洗流水線從野蠻 CSV 到可信 time-series 的七步法3.1 輸入文件預(yù)檢用file和head快速識(shí)別編碼與分隔符空氣質(zhì)量數(shù)據(jù) CSV 常見陷阱GB2312 編碼的中文表頭、制表符\t分隔、BOM 頭導(dǎo)致 pandas 讀取失敗。先執(zhí)行# 檢測(cè)文件編碼與分隔符Linux/macOS file -i station_202301.csv head -n 3 station_202301.csv | cat -A # 顯示不可見字符典型輸出station_202301.csv: text/plain; charsetiso-8859-1 ^Mstation_code^Mstation_name^MPM2.5(μg/m3)^M...看到^MWindows 換行和charsetiso-8859-1立刻轉(zhuǎn)碼iconv -f GB2312 -t UTF-8 station_202301.csv station_202301_utf8.csv3.2 字段標(biāo)準(zhǔn)化用正則統(tǒng)一污染因子列名不同來源 CSV 的 PM2.5 列名可能為PM25,PM2.5,PM2.5(μg/m3),細(xì)顆粒物(μg/m3)。清洗腳本normalize_columns.py定義映射字典# normalize_columns.py import re import pandas as pd COLUMN_MAPPING { r(?i)pm2[.\s]*5.*: PM25, r(?i)pm10.*: PM10, r(?i)so2.*: SO2, r(?i)no2.*: NO2, r(?i)co.*: CO, r(?i)o3.*8.*h.*: O3_8H, r(?i)temperature.*: TEMP, r(?i)humidity.*: HUMI } def standardize_column_names(df): new_cols [] for col in df.columns: standardized UNKNOWN for pattern, target in COLUMN_MAPPING.items(): if re.search(pattern, str(col)): standardized target break new_cols.append(standardized) df.columns new_cols return df # 使用示例 df pd.read_csv(station_202301_utf8.csv, encodingutf-8) df standardize_column_names(df) print(df.columns) # 輸出Index([PM25, PM10, SO2, NO2, CO, O3_8H], dtypeobject)參數(shù)說明(?i)啟用忽略大小寫匹配[.\s]*匹配點(diǎn)號(hào)或空格零次或多次.*匹配任意后續(xù)字符。此正則能覆蓋 95% 的列名變體未命中的列自動(dòng)標(biāo)為UNKNOWN便于人工復(fù)查。3.3 時(shí)間戳解析強(qiáng)制轉(zhuǎn)換為 ISO8601 并校驗(yàn)合理性空氣質(zhì)量數(shù)據(jù)要求時(shí)間戳必須滿足1精確到小時(shí)2不能早于 2013 年中國(guó)國(guó)控網(wǎng)全面運(yùn)行年份3不能晚于當(dāng)前日期。腳本parse_datetime.py實(shí)現(xiàn)魯棒解析# parse_datetime.py from datetime import datetime, timedelta import pandas as pd import numpy as np def safe_parse_datetime(dt_series): 嘗試多種格式解析時(shí)間戳返回 ISO8601 字符串或 NaT 支持格式%Y-%m-%d %H:%M:%S, %Y/%m/%d %H:%M, %Y%m%d%H, %Y-%m-%d %H:%M formats [ %Y-%m-%d %H:%M:%S, %Y/%m/%d %H:%M, %Y%m%d%H, %Y-%m-%d %H:%M ] parsed pd.Series([pd.NaT] * len(dt_series)) for fmt in formats: try: temp pd.to_datetime(dt_series, formatfmt, errorscoerce) # 僅當(dāng)該格式成功解析出 50% 非空值時(shí)采用 if temp.notna().sum() / len(temp) 0.5: parsed temp break except: continue # 強(qiáng)制轉(zhuǎn)為 ISO8601 字符串無毫秒時(shí)區(qū)為 UTC0 parsed_str parsed.dt.strftime(%Y-%m-%d %H:00:00).replace(NaT, ) # 二次校驗(yàn)剔除明顯錯(cuò)誤時(shí)間如 2000 年前或未來 30 天 now datetime.now() valid_mask ( (parsed datetime(2013, 1, 1)) (parsed now timedelta(days30)) (parsed.dt.minute 0) # 必須整點(diǎn) (parsed.dt.second 0) ) parsed_str[~valid_mask] # 置空后續(xù)清洗步驟處理 return parsed_str # 使用示例 df[dt_iso] safe_parse_datetime(df[time_column])邏輯說明errorscoerce將無法解析的值轉(zhuǎn)為NaTnotna().sum() 0.5防止誤匹配如%Y%m%d格式會(huì)把20230101當(dāng)作 2023 年 1 月 1 日但若數(shù)據(jù)含12345678這類亂碼該格式匹配率低自動(dòng)跳過dt.minute 0強(qiáng)制整點(diǎn)因國(guó)控站數(shù)據(jù)發(fā)布粒度為小時(shí)。3.4 異常值清洗基于物理約束與統(tǒng)計(jì)雙閾值的三級(jí)過濾清洗不是簡(jiǎn)單刪掉超限值而是分層決策層級(jí)規(guī)則動(dòng)作依據(jù)L1 物理層value 0或value 2000PM2.5標(biāo)記qc_flag2設(shè)備故障儀器檢測(cè)下限為 0上限受傳感器飽和限制L2 國(guó)標(biāo)層value max_limit查parameters表標(biāo)記qc_flag1人工修正待定如PM25超 75 μg/m3 為超標(biāo)但可能是真實(shí)重污染L3 統(tǒng)計(jì)層value Q3 3*IQR且value Q1 - 3*IQR按站點(diǎn)參數(shù)滾動(dòng) 7 天標(biāo)記qc_flag0原始值但寫入cleaned_records時(shí)插值排除短期脈沖干擾如揚(yáng)塵、設(shè)備瞬時(shí)抖動(dòng)核心代碼outlier_detection.pyimport numpy as np from scipy import stats def detect_outliers_by_iqr(group, window_days7): 對(duì)單個(gè)站點(diǎn)參數(shù)的時(shí)間序列用滾動(dòng) IQR 檢測(cè)異常 # 按時(shí)間排序并設(shè)置 dt 為索引 group group.sort_values(dt).set_index(dt) # 轉(zhuǎn)換為 pandas 時(shí)間序列便于滾動(dòng)窗口 ts group[value].astype(float) # 計(jì)算滾動(dòng) 7 天的 Q1/Q3/IQR q1 ts.rolling(f{window_days}D, min_periods12).quantile(0.25) q3 ts.rolling(f{window_days}D, min_periods12).quantile(0.75) iqr q3 - q1 # 異常閾值 lower_bound q1 - 3 * iqr upper_bound q3 3 * iqr # 標(biāo)記異常點(diǎn)True 為異常 is_outlier (ts lower_bound) | (ts upper_bound) # 為每個(gè)異常點(diǎn)生成清洗理由 reasons [] for idx, outlier in is_outlier.items(): if outlier: reasons.append(fiqr_outlier:{window_days}D) else: reasons.append() return is_outlier, reasons # 使用示例對(duì)每個(gè) (station_id, param_id) 組合調(diào)用 grouped df.groupby([station_id, param_id]) for (sid, pid), group in grouped: is_outlier, reasons detect_outliers_by_iqr(group) # 后續(xù)將 is_outlier 為 True 的點(diǎn)進(jìn)行線性插值參數(shù)說明min_periods12確保至少有 12 個(gè)有效點(diǎn)半日數(shù)據(jù)才計(jì)算 IQR避免冷啟動(dòng)偏差f{window_days}D使用日歷天數(shù)而非工作日因空氣質(zhì)量有周末效應(yīng)。4. 統(tǒng)計(jì)分析與可視化從“平均值”到“污染過程歸因”的進(jìn)階表達(dá)4.1 污染過程識(shí)別用滑動(dòng)窗口突變點(diǎn)檢測(cè)定位真實(shí)污染事件單純看月均值會(huì)掩蓋關(guān)鍵信息。例如某市 1 月 PM2.5 均值 65 μg/m3看似達(dá)標(biāo)但實(shí)際存在 3 次持續(xù) 48 小時(shí)的重度污染過程150 μg/m3。我們用ruptures庫(kù)的 Pelt 算法檢測(cè)突變點(diǎn)# pollution_event_detection.py import ruptures as rpt import numpy as np import pandas as pd def detect_pollution_events(series, min_size12, penalty5): 檢測(cè)時(shí)間序列中的突變點(diǎn)識(shí)別污染過程起止 series: pd.Series, index 為 datetime, value 為 PM2.5 濃度 min_size: 最小突變間隔小時(shí)避免檢測(cè)毛刺 penalty: 斷點(diǎn)懲罰系數(shù)越大越少斷點(diǎn)推薦 3-10 # 轉(zhuǎn)為 numpy 數(shù)組 signal series.values.astype(float) # 使用 Pelt 算法適合長(zhǎng)序列 algo rpt.Pelt(modelrbf).fit(signal) result algo.predict(penpenalty) # 過濾掉間隔過小的斷點(diǎn) filtered_result [result[0]] for pt in result[1:]: if pt - filtered_result[-1] min_size: filtered_result.append(pt) # 將斷點(diǎn)轉(zhuǎn)為時(shí)間區(qū)間 events [] for i in range(len(filtered_result)-1): start_idx filtered_result[i] end_idx filtered_result[i1] - 1 if end_idx len(series): end_idx len(series) - 1 start_time series.index[start_idx] end_time series.index[end_idx] # 僅保留持續(xù)超標(biāo)75的區(qū)間 segment series.iloc[start_idx:end_idx1] if segment.max() 75: events.append({ start: start_time, end: end_time, duration_h: int((end_time - start_time).total_seconds() / 3600), max_conc: float(segment.max()), avg_conc: float(segment.mean()) }) return pd.DataFrame(events) # 使用示例對(duì)某站點(diǎn) PM2.5 全年數(shù)據(jù)檢測(cè) pm25_series df.query(param_id 1).set_index(dt)[value].sort_index() events_df detect_pollution_events(pm25_series, min_size12, penalty8) print(events_df.head())輸出示例start end duration_h max_conc avg_conc 0 2023-01-05 00:00:00 2023-01-07 23:00:00 72 215.3 142.6 1 2023-02-12 00:00:00 2023-02-14 23:00:00 72 189.7 128.4邏輯說明min_size12確保識(shí)別的是持續(xù)半天以上的污染過程排除單點(diǎn)儀器故障penalty8經(jīng)實(shí)測(cè)在 1 年數(shù)據(jù)中平衡了過檢太多短過程和漏檢合并長(zhǎng)過程最終只保留max_conc 75的區(qū)間緊扣國(guó)標(biāo)二級(jí)濃度限值。4.2 空間熱力圖用 GeoPandas Folium 實(shí)現(xiàn)動(dòng)態(tài)站點(diǎn)濃度渲染靜態(tài)地圖無法體現(xiàn)時(shí)間維度。我們生成交互式 HTML 地圖支持時(shí)間軸拖拽# spatial_viz.py import geopandas as gpd import folium from folium.plugins import TimestampedGeoJson import pandas as pd def create_interactive_map(stations_gdf, time_series_df, param_codePM25): stations_gdf: GeoDataFrame, 含 geometry, code, name time_series_df: pd.DataFrame, 含 dt, station_code, value # 合并站點(diǎn)位置與時(shí)間序列 merged stations_gdf.merge( time_series_df, left_oncode, right_onstation_code, howinner ) # 按時(shí)間分組生成 GeoJSON 特征集合 features [] for dt, group in merged.groupby(dt): # 每個(gè)時(shí)間點(diǎn)生成一個(gè) FeatureCollection feature_collection { type: FeatureCollection, features: [] } for _, row in group.iterrows(): feature { type: Feature, geometry: { type: Point, coordinates: [float(row.geometry.x), float(row.geometry.y)] }, properties: { time: dt.isoformat(), popup: f{row.name}br{param_code}: {row.value:.1f} μg/m3, icon: circle, iconstyle: { fillColor: get_color_by_value(row.value), fillOpacity: 0.8, stroke: False, radius: 8 (row.value / 100) * 12 # 濃度越高圓圈越大 } } } feature_collection[features].append(feature) features.append(feature_collection) # 創(chuàng)建基礎(chǔ)地圖 m folium.Map(location[35, 105], zoom_start4, tilesCartoDB positron) # 添加時(shí)間序列圖層 TimestampedGeoJson( {type: FeatureCollection, features: features}, periodPT1H, # 每小時(shí)切換 add_last_pointTrue, auto_playFalse, loopFalse, max_speed1, loop_buttonTrue, date_optionsYYYY-MM-DD HH:mm, time_slider_drag_updateTrue ).add_to(m) return m def get_color_by_value(value): 根據(jù)濃度返回顏色綠-黃-橙-紅 if value 35: return #008000 # 優(yōu) elif value 75: return #FFD700 # 良 elif value 115: return #FF8C00 # 輕度 elif value 150: return #FF4500 # 中度 else: return #8B0000 # 重度 # 使用示例 # stations_gdf gpd.read_file(stations.geojson) # time_series_df pd.read_sql(SELECT dt, s.code as station_code, c.value FROM cleaned_records c JOIN stations s ON c.station_ids.id WHERE c.param_id1, conn) # m create_interactive_map(stations_gdf, time_series_df) # m.save(pm25_timeline.html)參數(shù)說明periodPT1H遵循 ISO8601 持續(xù)時(shí)間格式表示每小時(shí)更新radius動(dòng)態(tài)縮放確保低濃度站點(diǎn)不被淹沒get_color_by_value嚴(yán)格對(duì)應(yīng)《環(huán)境空氣質(zhì)量標(biāo)準(zhǔn)》GB 3095-2012六級(jí)劃分非主觀設(shè)定。4.3 污染源歸因初探用相關(guān)性矩陣鎖定協(xié)同變化污染物PM2.5 往往不是獨(dú)立出現(xiàn)而是與 SO2、NO2 等協(xié)同升高。我們計(jì)算各污染物兩兩間的 Spearman 相關(guān)系數(shù)抗異常值# source_apportionment.py import pandas as pd import numpy as np from scipy.stats import spearmanr def calculate_correlation_matrix(df, param_codes[PM25,SO2,NO2,CO,O3_8H]): 計(jì)算指定污染物在全站點(diǎn)的平均 Spearman 相關(guān)系數(shù)矩陣 df: cleaned_records 表導(dǎo)出的 DataFrame含 station_id, param_id, dt, value # pivot 為寬表indexdt, columnsparam_code, valuesvalue pivot_df df.pivot_table( indexdt, columnsparam_code, valuesvalue, aggfuncmean # 同一時(shí)刻多站點(diǎn)取均值 ).dropna() # 剔除任一污染物缺失的時(shí)刻 # 計(jì)算 Spearman 相關(guān)矩陣 corr_matrix pd.DataFrame( np.zeros((len(param_codes), len(param_codes))), indexparam_codes, columnsparam_codes ) for i, p1 in enumerate(param_codes): for j, p2 in enumerate(param_codes): if i j: corr_matrix.iloc[i, j] 1.0 else: # 計(jì)算非空配對(duì) valid_mask pivot_df[[p1, p2]].notna().all(axis1) if valid_mask.sum() 10: # 至少 10 個(gè)有效點(diǎn) corr, _ spearmanr( pivot_df.loc[valid_mask, p1], pivot_df.loc[valid_mask, p2] ) corr_matrix.iloc[i, j] round(corr, 3) else: corr_matrix.iloc[i, j] np.nan return corr_matrix # 使用示例 corr_df calculate_correlation_matrix(cleaned_df) print(corr_df)輸出示例對(duì)某城市PM25 SO2 NO2 CO O3_8H PM25 1.000 0.623 0.781 0.692 -0.412 SO2 0.623 1.000 0.512 0.587 -0.321 NO2 0.781 0.512 1.000 0.725 -0.503 CO 0.692 0.587 0.725 1.000 -0.445 O3_8H -0.412 -0.321 -0.503 -0.445 1.000解讀PM25與NO2相關(guān)系數(shù) 0.781顯著高于與SO20.623暗示機(jī)動(dòng)車排放NO2 主要來源對(duì)該市 PM2.5 貢獻(xiàn)可能大于燃煤SO2 主要來源O3_8H與所有顆粒物呈負(fù)相關(guān)符合光化學(xué)反應(yīng)規(guī)律高臭氧常伴隨晴朗天氣顆粒物沉降。這為后續(xù)受體模型如 PMF提供強(qiáng)假設(shè)入口。5. 避坑指南數(shù)據(jù)清洗與分析中五個(gè)血淚教訓(xùn)5.1 現(xiàn)象清洗后數(shù)據(jù)量比原始 CSV 少 30%排查發(fā)現(xiàn)raw_records表中大量dt字段為空原因CSV 中時(shí)間列名為監(jiān)測(cè)時(shí)間但normalize_columns.py的正則未覆蓋中文導(dǎo)致dt列未被識(shí)別safe_parse_datetime()輸入空 Series全部返回空字符串。解決在COLUMN_MAPPING中增加r(?i)監(jiān)測(cè)時(shí)間|date.*time.*: dt并添加預(yù)檢邏輯——若解析后dt_iso空值率 10%拋出ValueError并打印前 5 行原始時(shí)間列內(nèi)容強(qiáng)制人工介入。5.2 現(xiàn)象某站點(diǎn)PM25在 2023-03-15 全天恒為0.0清洗腳本未標(biāo)記導(dǎo)致月報(bào)中該站均值嚴(yán)重偏低原因L1 物理層規(guī)則value 0未覆蓋value 0的設(shè)備零點(diǎn)漂移場(chǎng)景且該站點(diǎn)當(dāng)日其他參數(shù)如TEMP,HUMI正常故未觸發(fā)設(shè)備故障標(biāo)記。解決增強(qiáng) L1 規(guī)則為value 0 and not (param_code in [TEMP, HUMI])并對(duì)PM25/PM10/SO2/NO2/CO/O3_8H這 6 項(xiàng)增加“連續(xù) N 小時(shí)恒為 0”的專項(xiàng)檢查N6標(biāo)記qc_flag2并記錄reasonzero_drift:6h。5.3 現(xiàn)象cleaned_records表中出現(xiàn)dt為2023-01-01 00:00:00和2023-01-01 00:00:00.000兩種格式導(dǎo)致后續(xù)GROUP BY dt統(tǒng)計(jì)結(jié)果重復(fù)原因部分?jǐn)?shù)據(jù)源時(shí)間戳含毫秒.000strftime(%Y-%m-%d %H:00:00)未截?cái)嗪撩攵鴖trftime(%Y-%m-%d %H:00:00)對(duì)含毫秒的datetime對(duì)象會(huì)保留.000。解決在safe_parse_datetime()末尾強(qiáng)制截?cái)鄍arsed_str parsed.dt.floor(H).dt.strftime(%Y-%m-%d %H:00:00)floor(H)將毫秒、分鐘歸零確保格式絕對(duì)統(tǒng)一。5.4 現(xiàn)象folium生成的地圖加載極慢Chrome 控制臺(tái)報(bào)RangeError: Maximum call stack size exceeded原因TimestampedGeoJson默認(rèn)將所有時(shí)間點(diǎn)的 GeoJSON 一次性注入 HTML1 年數(shù)據(jù)8760 小時(shí)生成的 JSON 體積超 200MB瀏覽器內(nèi)存溢出。解決啟用periodP1D按天切換并設(shè)置durationP1D同時(shí)用folium.GeoJson替代TimestampedGeoJson手動(dòng)實(shí)現(xiàn)時(shí)間軸控件每次只加載當(dāng)天數(shù)據(jù) 2MB。5.5 現(xiàn)象spearmanr計(jì)算PM25與O3_8H相關(guān)系數(shù)為-0.05但業(yè)務(wù)方反饋“臭氧高時(shí)顆粒物必然低”懷疑統(tǒng)計(jì)失效原因O3_8H是 8 小時(shí)滑動(dòng)平均而PM25是小時(shí)值直接對(duì)齊導(dǎo)致時(shí)間尺度錯(cuò)配。例如O3_8H在2023-01-01 12:00的值代表05:00-12:00平均但PM25取的是12:00單點(diǎn)。解決對(duì)O3_8H列先用pandas.Series.rolling(8).mean()重算小時(shí)級(jí)滑動(dòng)均值再與PM25對(duì)齊或改用O3小時(shí)值參與計(jì)算明確標(biāo)注“此處分析的是臭氧小時(shí)濃度與 PM2.5 的即時(shí)關(guān)聯(lián)”。6. 進(jìn)階技巧用 Airflow 編排全鏈路讓清洗分析真正“無人值守”6.1 DAG 設(shè)計(jì)四個(gè)原子任務(wù)串聯(lián)成可靠 pipelineAirflow 不是用來炫技的而是解決“誰來記得每月 1 號(hào)跑清洗腳本”這種管理問題。我們定義最簡(jiǎn) DAG僅含 4 個(gè)任務(wù)任務(wù)名依賴執(zhí)行動(dòng)作超時(shí)重試check_new_data無檢查data/incoming/目錄是否有新 CSV按文件名含202312判斷300s2ingest_to_rawcheck_new_data成功調(diào)用ingest_raw.py將 CSV 批量插入raw_records1800s1run_cleaningingest_to_raw成功調(diào)用clean_all.py執(zhí)行全量清洗寫入cleaned_records3600s1generate_reportrun_cleaning成功調(diào)用report_gen.py生成 PDF 月報(bào) HTML本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
欧美97色| 色婷婷丁香五月| 男女性扦B| 黑操B| 91免费看一区二区三区| 啊啊啊好疼| 国产精品三级视频网站| 亚洲国产美女久久久久| 天天干人人看综合| 伊香蕉综合久久久久久久噜噜噜| 牛牛久久国产精品视频一二三| 亚洲黄色a级片| 插插综合网天天影视网| 欧美亚州色的图| 亚洲中文字幕久久人妻| 97在线视频免费| 久操网在线| 人妻加勒比东京热| 久久久久成人蜜桃精品| 国产一区二区三区导航| 五月天婷婷在线看| 欧美日韩小说| 国产91丝袜在线播放蜜月| 曰本精品久久久| 九九综合久久| 伊人五月天| 亚洲一卡2卡3卡4卡乱码网站 | 正在播放:深夜激情大战,自带黑丝袜全力输出骚穴 | 超碰9 7女人| 久久久久ab| 97超碰美国| 日本123区操B视频| 亚洲中文一区二区三区视频| 欧美日韩国产中文精品字幕自在自线| 永久免费观看的毛片的网站| 国产视频人人网| 精品人妻一区二区三区四区| 密臀视频三区免费网站| 鸥美中出| 综合网 欧美| 91欧美情色| 中文字幕精品专区搜索结果91| 亚洲国产精品久久久久婷婷青年| 久久精品人体| 亚 欧 美 综合| 人人摸人人叼| 操逼网免费无码视频| 干干干天天| www.yeyecao| 手机午夜电影神马久久| 91免费看一区二区三区| 日韩精品字幕| 久久久精品中文字幕爱豆| 五月天亚洲色图| 欧美精品庄| 欧美天堂在线| 亚洲国产一级黄色视频| 亚洲中文字母在线播放| 强奸乱亚洲| 日韩人妻少妇 一区二区三区| 日韩中文字幕在线视频观看| 亚洲第一无码播放立川理惠| 99热这里只有精| 动漫爆乳3D奶水一区在线观看| 日韩精品一区二区日韩| 九九综合久久| 91精品久久久久久77777| 日韩AC| 综合色啪| 97蜜桃综合| 自拍丝袜美腿人妻| 五月天亚洲网| 日韩一级二级三级免费看完整版| 国产女同视频在线播放| 午夜大香蕉| 加勒比海成人视频网| 久久久久一本一区二区青青蜜月| 99re在线视频国产| 久久精品人妻一区| 国产精品婬乱一级毛片彝族| 国产在线视视频有精品| 中文字幕视频一区视频二区| 欧美一二在线| 精品久久无码午夜福利| 5252色欧美在线| 国产精品一二三在线看| 色综合久久888| 国产原创精品| 大香蕉日亚洲日本亚大| 激情小说亚洲| 日本欧美亚洲高清在线看| 手机在线视频国内精品| 欧美另类色图片| 久久m| 免费一二区| 国产91啪| 蜜臀AV成人精品蜜臀AV久久| 草B在线| 成人性爱免费播放| 中文高清一区二区的| 久久这里| 26uuu性物| 内射中出日韩在线观看视频| 99精品综合久久久久五月天| 久久久久久久| 亚洲偷拍自拍在线视频| 91色图片| 中文字幕在线免费观看2| 国产女人极品高潮毛片| 久偷拍| 国产三级片在线观看| 欧美探花网| 久久久精品国产亚洲伊人| 亚洲色堂免费视频| 久草色在线观看| 日韩中文字幕精品一区在线| 爱干爱射网啊啊啊| 久久精品六区| A 在线网址| 91精品成人www| 超碰 国产熟女精品一区| 91人妻最真实刺激绿帽| 亚洲第一页欧美| 亚洲成人激情小说视频| 偷窥自拍亚洲色图| 日本综合色图| 男人天堂一区二区| 免费观看的黄色的网站| 99综合自拍| 精品久久久av无码免费| 白丝AV网站| 久久天堂| 久插不卡| 亚洲精品性爱片| 国产午夜福利视频在线| 一级做a爰片性色毛片久久| 色婷婷久久| 久久超碰天天| 人人操人人狠狠操| 亚洲中文字幕av| 蜜乳AV网址| 欧美亚洲韩国视频十五区| 国产麻豆福利av在线播放| 欧美91网站| 伊人久久大香线蕉无码| 欲香欲色综合天天伊人| 婷婷久久五月天| 九九草| 免费啪啪一级视频| 女性91网站| 人妻精品综合中文字幕在线 | 一起草视频在线| 国产精品久久久久久久黄无码| 91成人社区| 人人操,操人人| 男人的天堂久久狠| 久久香蕉国产线看观看猫咪av| 男人的天堂三级| 一品道视频一区二区三区| 人人操 欧美| 中文字幕精品亚洲熟女| 欧美黑人猛交春色影视大全| 综合影视国产无码| 偷拍精品一区二区三区| 国产精品一二三| ss久久| 国产欧美日韩精品中文| 国产白丝精品在线观看| 国产日韩中文字幕欧美| 日本亚洲vr欧美不卡高清专区| 园内精品自拍视频在线播放| 久热最新在线杭州| 男人的天堂无码| 亚洲人成色9999精品久久 | 日日骚 av| 亚洲偷拍自拍在线视频| 久久受www免费人成| 人妻丝袜二区| 少妇第一页| 精品国产自在在线99| 欧美aaaaaaa| 99热在线播放| 亚洲性刺激| 欧美大香蕉97| 97色伦欧美| 亚洲精品三| 特级特黄一级毛片免费| 色9999日韩国产| 青青免费在线视频一区| 国产性爱强奸乱伦大全| 78精品| 九热超碰| 超碰综合97在线| 熟妇高潮一区二| 亚洲中文字幕97久久精品少妇| 操操吧亚洲乱伦视频| 国产高清自拍| 欧美色另类| 色情婷婷久久五月天| 91+欧美| 啊a一区在线| 精品人妻伦一二三区久久| 成人性爱全视频观看| 亚洲一卡二卡在线免费| 尹人免费观看视频在线| 精品日韩人妻精品一二三区| 欧美高清18A片| 黑人免费福利视频| 精品无码久久久久久久久果冻糖心| 老鸭窝成人| 97视频在线观看网站| 青青草乱入乱欲视频在线观看| 欧美大香蕉卡久久| 天天干天天日天天射黄色大片| 亚洲综合小说另类图欧美视频激情小说色五月天 | 26uuu国产| 日韩人妻资源在线看| 久久久久9999| 看日韩美女二区三区免费操逼视频| 日本中文字幕在线视频| 亚洲 欧美 91| 亚洲限制级在线| 国产精品密臀网在线观看| 人妻 欧美 中文| 久操视频免费观看| 91精品国产一区三一| JuliaAnn丝袜熟女系列| gogogo免费高清看中国国语| 日本欧美韩国国产在线| 欧美性爱视频免费一区一A| 国产精品爽爽va在线观看98| 99视频内射三四| 午夜精品久久久久久久男人的天堂 | 久久久久久久| 欧美高清无码免费视频高清版| 亚洲 无码 偷拍| 国产黄片精品在线| 久久老子无码午夜伦不卡| 国产91美女高潮| 日本天天人人狠狠在线日美女| 96AV久久久| 97精品中文字幕| 日日骚一区二区三区| 男人的天堂网页| 亚洲色图尤物视频| 色五月婷婷五月天| 中文字幕第23区| 青青草一本道福利视频| 超碰在线欧美性爱激情| 日本一级性爱| 97视频观看| 色香网| 国模精品娜娜一二三区| http://qxhbdz.com| 日本欧美色| 国产传媒一区二区三区| 亚洲AV成人无码久久精品播放| 麻豆久久久一区二区| 日韩精品第3页| 男人的天堂com| 亚洲一区操| 免费看日产一区二区三区| 99色婷婷中文字幕乱色| 清纯唯美亚洲| 97人人草| 综合熟妇一区二区三区| 欧美强奸乱能| 亚洲国产综合久久久性感熟妇| 男女香蕉一区二区| 亚洲国产婷婷在线播放| 少妇99成人麻豆| 亚洲久久天堂| 人成午夜免费大片| 超碰免费欧美7| 最新国内自拍av免费| 久久精彩视频| 亚洲欧洲综合| 五月综合婷婷久久网站| 二级久久网| 三四中文字幕| 欧美国产日韩清纯唯美| 午夜男人的天堂| 亚洲第一无码播放立川理惠| 天堂精品一区| 免费看一级a性色生活片久久无| 热久日综合| 在线日韩日本亚洲国产| 香蕉一区二区三区在线视频| 亚洲另类天堂| 天天影视综合网欧美精品| 999久久芭蕾| 乱论91| 福利天堂| 亚欧韩av| 精品人妻久久久| 日韩乱中文| 少妇丝袜在线观看AV| 日韩精品一区二区高清| 99热在线不卡| 人人看人人爰人人操| 综合 青草 伊久久 影院 综合| 91精品人妻一区二区三区蜜桃| 国产激情在线| 久久线上视频免费看| 一区三区啪啪| 五月天久久人妻| 激情AV| 日韩啪啪视频| 日韩欧亚太美不卡| 99久国产精品午夜性色福利| 久久婷婷亚洲欧| 2019久久久久久久久福利| 欧美大香蕉97| 丁香六月东京热| 91超碰丝袜制服| renqi久久久久久久久久久久| 四虎在线视频| av操操不卡| 欧美精品23| 中文字幕久久亚州无码| 亚洲一区日韩| 另类图片欧美激情综合| 91操人| 99热最新网址| 亚洲中文字幕在线视频一区二区 | 试看日韩黄片| 亚州欧美总和| www.婷婷五月天| 天天综合网日韩| 美欧老女人97| 蜜臀国产AV中文字幕| 欧亚无码视频| 91精品国产91久久久久久久久久久久| 东京热亚洲一区二区| 精品无码欧美三级| 青青草五月份天| 午夜精品99久久久久传媒| 两女互慰AV高潮喷水在线观看| 日本人妻最新在线中| 综合欧美日韩在线| 99久久com免费视频′| 天堂俺去俺来也www久久婷婷| 人妻人久久精品中文字幕| 日本韩国一本产品小视频日本韩国一本产品久久久产品小视频日本韩国一本产品久 | 色五月综合| 免费A片三p视频| 亚洲色图欧美色图在线播放| 亚洲AV资源| 精品久久人妻成人网| 日日骚AV| 9久9久| 亚州 综合 色图| 婷婷性爱| 亚洲AV无码成人精品久久| 欧洲在线性爱视频| 亚洲 欧美综合| 超碰69| 夜夜操91744565| 激情综合婷婷| www黄片免费看com| 操操操日本的逼| A级国产欧美激情在线| 日韩电影中文字幕| 亭亭在线资源| 九九九九九九九九九九九九九九九女| 翘臀vidoes| 国产成人精品日本亚洲语言 | 久草精品一区| 神马久久网| 久久精品欧美一区蜜桃| 国产成人资源| 91久久精品国产| 九九激情网| 久久久久9| 人人爱人人操人人性| 51国产午夜精品视频| 欧美中出| 91亚洲欧美| 黑人综合网| 日夜伊人网| 精品日日人妻| 亚洲深夜福利| 四虎av在线| 伊人性在线视频| 欧美精品,四区。五区| 久日综合网| 性欧美精| 亚洲极品| 久久久青草青青国产亚洲免观精品高清完整版_97久久综合区小说区图片区,国精品 | 亚洲黄色AV电影| 一区二区三区一亚洲中文字幕、综合区灬 | 激情五月天色播| 91操人视频| 免费视频a级毛片免费视频| 日本污ww视频网站| http://qxhbdz.com| 精品久久久久久亚洲| 精品一区二区三区蜜桃臀赵总 | 蜜桃天美传媒AV一区二区三区| 5252色欧美在线男人的天堂| 国产精品夜夜夜| 欧美午夜视频免费观看| 丁香九月婷婷| 啊啊啊好爽快点啊啊啊嗯嗯| 裸体女人草逼视频播放一区,二区,三区,四区,五区 | 人妻天天夜夜爽一区二区| 殴美牲| julia在线观看久久| 色婷婷婷五月天激情四射| 免费人人搞97| 日韩欧美久久婷婷网站| 国产偷人伦激情在线观看| 免费人成毛片乱码| 国产欧美日韩女同性恋ww喷水精品| 91久久久久免| 91视频综合在线| 青青草一区二区高清无码视频 | 亚洲操操操| 亚洲91色在线| 99re28在线观看| 国产在线综合网| 国产大学生口爆吞精合集| 午夜精品视频777| 欧美 青青草| 免看60秒涩涩视频| 免费αV在线视频| 熟女六十路| 夜夜操av亚洲一区二区| 99最新日韩偷拍视频| 超碰欧美| 色婷婷基地| 欧美情色贴图| 97天天日| 九九九九九九九精品视频| 欧美成人综合| 26uuu久久| 色色色99| 91亚.色| 免费精品中文字幕| 美女露胸露屁股| 97精品久久久久中文字幕| 久久久久久性爱免费视频| 翔田千里AⅤHD无码| 久久性爱免费送| 91无码中出人妻视频| 91精品人妻啪啪间| 91视频伊人| 日本女人操逼| 久久后入制服| 青娱乐欧美激情一区二区 | av在线人气| 蜜桃午夜视频一区二区 | 欧美熟妇操操视频| av黄图片在线观看| 3571色综合一区二区二区| 欧美人人天天网| 欧美一二三级精品在线| 麻豆黄色五月天| 精品人妻一区二区蜜桃视频| 亚洲色图亚洲无码强奸乱伦| 99色婷婷中文字幕乱色| 欧美人黑A片无码免视费| 啪啪啪大香蕉| 另类图片五月天| 欧美日韩国产三级黄色| 333kkkk·亚洲com久久| 艹精品| 熟女五十路一区二区三| 天天流夜夜操| 久久精品导航| 不卡av在线中文字幕| 激情露脸爱| 精品九九九| 99无码| 大色综合| 午夜男人天堂| 色综合一区二区三区| 久久久久免费少妇| 91综合网在线| 欧美精品第3页| www国产精品| 婷婷视频网| 神马久久久久久久久| 精品人妻美妇91job| 亚洲美女黄色| 国产强奸超碰AV| 岛国天天午夜影院传媒网| 国产高清26uuu| 一区二区国产视频在线观看| 国产中文大片资源中文字幕| 囯产精品强| 五月天婷婷激情| 国产强奸乱伦无码视频| 嗯嗯嗯啊啊啊操的我好爽 | 色哟哟av| 丁香五月婷婷五月| 欧美性天天| 国产污视频麻豆传媒一区二区| 欧美A片中文字幕| 91伊人大香蕉| 婷婷中文网| 69一区二区三区 | 欧美草草高清日韩视频| 国产欧美一区二区| 亚洲图片色图欧美另类| 美熟女逼导航AV操逼| 久久久久人妻| 成年人三级黄色片视频| 超碰视97中文| 国产在线不卡导航| 欧美αv.com| 久湿久久| 欧美性爱97超碰| 无码 黑人一区二区三区| 欧美青青草视频| 亚洲,欧美,春色,另类| WWW.操逼.COM| 韩国嫰模上门援交视频| 欧美97日韩| 韩日性爱av| 亚洲综合色图欧美| 中文字幕久久精视频久久大全| 久久久久久国产精品免费网站| 五月天婷婷社区| 91少妇香蕉久久精品| 99热精品在线观看| 涩综合导航| 久久系列| 亚洲丰满很很操| 大香蕉手机在线视频| 精品人妻美妇91job| 17c嫩草51久久91嫩草| 啊啊啊啊啊啊啊在线| 欧美大码在线视频| 亚洲综合成人网| 成人自拍三级在线观看| 中文字幕欧美丝袜07资源| 中文字幕久久精视频久久大全| 激情啪啪拍91| 色色色欧美| 日韩精品在线视频,日韩精品……| 日韩不卡一二三四| 色麻豆AV| 嗯嗯啊啊用力视频免费| av中文在线| 色99视频| 日本www操操操| 五月婷亚洲精品天堂| 亚洲国产97在线精品一区| 91九九九小逼| 大香蕉男人的天堂| 亚洲视频,小说| 日韩精品99999| 久9视频| 欧美特大黄一级片片免费| 久久国产AⅤ| 黄色无码高清黄色无码网站| 97超碰超| 天堂网亚洲区手机版| 亚洲资源吧| 久久精品人妻一区二区三区| 欧洲精品一二三在线| 伊人丝袜美腿高跟在线观看高清| 热天堂一区二区| 800zy一区二区| 久操高青| 久久久久精| 午夜天堂精品久久| 九九九九九九成人| 内射中国少妇高清视频免费视频 | 后入福利视频| 熟女露脸激情自拍视频| 97se亚洲综合自| 岛国免费黄色网址| 国产精品不卡一区二区电影| 成人无码电影在线观看网| 日韩黄片视频试看| 免费精品人妻一区二区三| 国产精品自在线发布| 国产97视频免费观看| 亚欧无码在线| 国产成人亚洲精品自产在线 | 白丝jkav| 国产日韩中文字幕欧美| 超碰社区97| 这里都是精品| 看免费的黄片| 国产精品自在自拍视频| 亚洲国产成人7777| 麻豆啪啪啪视频| 久久久久成人蜜桃精品| 夜夜高潮夜夜爽高清视频一| 极品粉嫩少妇视频| 九九五月天| 啪啪啪亚欧美视频| 亚洲美女av无码| 神马久久久久久伦理片| 91精品久久久久久综合五月天| 麻豆天美久久91| 亚洲综合99999| 亚洲精品黑丝| 国产辣妈在线视频福利| 影音先锋日本一区二区| 亚洲第一无码播放立川理惠| 欧美,日韩,亚洲视频| 91爽啪| 东北女人的毛片| 国产精品伦理| 在线中文字幕| 99久在线精品99re8热| 一区二区三区男女操逼黄色小电影| 性性久久| 深喉吞精| 九月丁香婷婷色| 亚洲va综合va国产va中文| 无码久| 性欧美91| 人人插人人摸人人| 操逼精品视频| 日韩精品亚洲一二三| 国产啊v在线免费播放| www.婷婷六月天| 久久久久久久久久精| 国产一国产一级毛片古装| 福利在线观看一区二区| 欧美性特| 久久精品28| 69精品久久久久中文字幕| 91天天c| 国产91 丝袜在线播放00-百度| 三级色综合| 久久曰曰| 看日韩黄片| 欧美日韩色图片| 日韩91网| 精品一啪| 久久精品人妻一区二区三区| 国产高清精品一区二区三区毛片| 精品人妻一区二区三区-国产| 久久久天美| 强奸乱伦AV网站| 超碰97最新人妻| 亚洲无码视频免费在线观看网址!| 欧美成人四级在线播放| 嗯嗯啊好大| 日本一区二区三区免费观看| 成人熟女视频一区二区三区| 欧美天天干| 婷婷五月成人| 精品九九九九九九| 一区二区三区精品黑丝白丝酒店对鸡 | 亚洲熟妇综合久久久久久| 操婢日韩| 鸥美插入视频| 亚洲天堂人妻熟妇视频| 超碰98综合网| 凹凸视频在线观看伊人| 青青草玖玖爱| 精品国产自在在线99| 日日骚中文字幕| 婷婷中文字幕| 天天影视色香欲综合网小说| 久久9亚洲| 国产一区二区三区高清视频| 久久久久久91香蕉国产| 国产在线激情视频| 午夜九九| 国产刺激视频| 无码人妻1727| 日本不卡二三区| 啪啪AV导航| 精品国产乱码久久久| 人妻嗯啊啊在线播放| AV中亚| 丝袜无码a片| 1024人妻熟女一区二区三区| 日本欧美不卡| 国产日韩精品一区二区三区| 亚洲无码视频免费在线观看网址!| 久久综合18p| 三级AV入口| 久久久免费高清中文视频| 综合五月婷婷| 亚洲av青草久久一区二区| 日韩伦理视频| 懂色AV蜜臀无码精品APP| 天堂性色| 九七毛片九九毛片| 五月香婷婷| 免费少妇一区二区| 青青草原成人| 日本 成 人 小说 电影 一区二区| 黄色片一区二区三区四区五区| 免费超碰97久久| 黑丝内射一区二区三区| 综合av社区| 天天干夜夜操一区二区| 一区二区三区四区五区高清无码永久视频| 成人a级高清视频在线观看| 在线洲亚线| 欧美日日夜夜| 亚洲欧洲另类| 亚洲欧洲综合av在线| 伦理第一页| 九九热精彩视频| 精品亚洲国产成人av网站| 欧美黄页| 久久熟女嫩草成人片免费| 亚洲欧洲小说图片视频 | AV中文字幕三四五| 不卡一区视频| 97精彩视频网站| www.色婷婷色综合| 国产综合在线视频网站| 91色夜| 四虎在线免费视频| 99啪| 91蜜臀熟女| 男男H黄动漫啪啪无遮挡网站| 五月天久久综合网| 青草精品视频日本久久久久网站在线| 久操网在线| 欧美中文字幕一区 | 九九九九九九成人| 福利风月五月天影院| 无遮挡猛进视频免费无限观看| 久久丁香久草综合网| 偷拍亚洲| 超碰久超碰久| 中国熟妇| 一卡二卡三卡| 91热| 极品出轨视频网站| 欧美性综合| 亚洲999综合| 欧美色图成人网一区二区| 欧美久久婷| 黑人操一区二区| 国产av强奸美女| 亚洲性爱成人| 中国AV美女| 日韩一级欧美一级国产一级台湾| 亚洲综合影院| 97超碰久久| 人人操欧美风骚| 蜜臀99久久精品久久久懂爱| 中国和日本人色哪个不下载能放| 物业黑人 AV一区| 无码久| 欧亚韩国999| 国产外初女出血视频| 久超碰这里只有精品| 国内一区二区三区| 国产9熟妇视频网站| 国产自偷| 成人情色综合网| 校园春色美腿丝袜| 凌辱美少妇久久aV| 搡老女人911熟妇老熟女| av影片在线观看不卡| 男女无套 免费网站| 成全动漫视频观看免费下载| 1000部熟女视频在线观看| 成人小说另类在线| 亚洲.欧美.丝袜.中文.综合| 丝袜美腿诱惑亚洲欧美视频在线观看| 人人妻人人操人人乐| 国产久久久9999| 欧美韩国你懂得在线 | 青青草国产一区二区三区| 欧美激情精品久久久久久| 蜜臀99久| 国产操逼视频在线观看| 极品美女福利在线观看| 国内精品久久久久影院亚洲| 国产欧美日韩在线观看麻豆传媒公司| 人妻精品综合中文字幕在线| 4虎在线视频| 91精品国产91久久久久久久久久久久| 91另类| 国产一级137片内射麻豆| www.色婷婷色综合| 97干日韩| 亚洲日本男人天堂网| 日韩大香蕉精品在线视频| 亚州欧美另类| 最新av网站在线观看| 人人插人人搞人人操| 大香蕉伊人亚洲| 国产精品亚洲日韩骚欢乐谷最新地址发布页huanieguty性屋娱乐妖精视频 | 精品国产乱码久久久久久影片| 一区二区三区四区五区高清无码永久视频 | 激情综合五月| 久久久国产精品人妻丝袜| 国产搭汕a级片| AAAA欧美日韩| 五月婷婷色| 99啪啪| 亚洲情色视频| 老司机深夜影院18未满| 日韩在线女优天天干| 国产视频大全| 波多野结衣AV无码一区| 丁香五月天激情网站| 日韩伦理视频| 亚洲在饯| 天天色综亚洲91污| 欧美熟妇亚洲版| 欧州91高潮| 强奸a片网| 青青草十区九区爱夜| 欧美在线啊啊| 国产伦乱91| 99在线啪| 91久久免费视频互動交流| 深夜啪啪啪视频免费| 日韩 女同 综合| 欧美日产国产在线成人第一区| 性爱综合网| 欧美色图 人妻| 日本一级特级毛片视频| 久久露脸国产老熟女| AV色图| 乱操乱伦AV| 韩日男人的天堂| 天天射天天色成人| av在线资源| 91熟女少妇| 欧美三级中文字幕hd| 亚洲 欧美 小说| 涩综合导航| 按摩中文字幕| 国产在线综合网| 久久国产三区| 91色色网站| 亚洲午夜免费狠狠干| 国产精品成人午夜福利| 立川理惠无码一区二区| 亚洲成人帖图| 国产家庭乱伦网址| 欧美,日韩,中文,另类| 乱伦av麻豆| 一二三卡欧美日韩人妻免费精品| 黄色片,com| 台湾佬中文娱乐网久久久久久久久久com| 都市久久精品激情亚洲| 日韩精品99999| 亚洲天堂久久久久久粉红视频| 五月丁香六月| 中文字幕蜜乳av| 在现视频女上位好爽| 欧美精品69性爱| 国产超碰国产97| 伊人一级免费黄片| 日韩激情视频| 91精品人妻电影| 久久久草草精品| 五月天激情网图片| 玖玖综合网| 九九久久国产精品| 日本性爱欧美性爱| 国产AV天美传媒一区二区三区 | 乱伦系列一区二区| 青青草好吊色| 97玖玖人妻| 日韩精品人妻一| 蜜桃臀AV在线| 欧插网站| 久久这里只精品免费福利| 欧美影音在线| 激情五月天丁香社区| 激情欧美97| xxx亚洲午夜天堂| 青青久久手机线视频| 91色伦| 欧美色九九九| 约操熟妇| 国产色产精品在线观看| 久久久久久久久久久久黄色| 熟女突然公开看18禁影片| 日夜精品| 欧美国产成人在线| 亚洲无线码一区国产欧美国| 国产美女高潮| 和协影院中文字幕三区| 婷婷亚洲综合| 欧美中文字幕日韩在线| 久久青娱乐| 久久这里都是精品| 亚州AV无码国产精品| 97精品一区二区三区免费| 伦在线97| 99热精品在线观看| 乱欲一区二区| 九九碰九九爱97超| 99色在线| 亚洲色图20p| 97人人射| 国产乱伦亚洲| 伊人天天久久动态图| 九九九热精品| 97 视频在线| 99热91| 國產尤物AV尤物在線觀看| 欧美淫乱视频| 久久夜夜夜| 五月婷婷激情| 中文字幕精品一区二区精| 啪啪视频免费在线观看| 一本色道久久综合狠狠操| 成人精品一区二区三区| 欧美男人一区| 丁香五月激情综合国产| 欧美日韩啪啪电影| 男人天堂电影院| 四虎影视国产精品| 职场同事知名国产国产精品久久欧美日韩 | 播播亚洲小说亚洲| 国产真乱mangent| 九七超碰| 91日产桃蜜| 九九九国产精品| 天天综合官网| 亚洲高潮影院| 免费超碰97久久| 久久久久密臀视频| 涩爱AV在线| 精品国产网站| 人妻嗯啊啊在线播放| 亚洲欧洲另类| 国模精品娜娜一二三区 | 久久久9品一区二区三区| 精品久久一区二区三区四区五区| 欧美一二三级精品在线| 午夜福利国产欧美日韩夜夜| 国产一区二区三区高清视频| 色九久| 97精| 色九久| 男人的天堂2019| 精品国产乱子伦一区二区三区,精品一| 97伦综合| 日本一卡二区在线| 青青青在线高清视频在线一二三四区| 中文熟女五十乱码在线| 情色五月天就去干| 97国产伦理| 国产精品大屁股999| 久久中出在线| 求求你操操我| 夜精品久无码| 亚洲啪啪啪啪视香蕉| 偷拍亚洲情色| 欧美最婬乱婬爆婬牲视频| 午夜九九九九九九| 男人的天堂VA| 17c嫩草51久久91嫩草| 九九九九热| 色在线综合| 日韩乱中文| 色牛牛AV| 久久大香蕉手机高清| 久久久艹艹艹| 青青草视频导航官网| 97AV在线免费观看| 日本一二三免费久久| 欧美性爱超碰97| 国语av狠狠色丁香婷婷综合激情| 亚洲午夜蜜臀| 97在线看| 可能人人看人人摸| 国产精品99久久久www| 精品女人999| 亚熟在线| 欧美人妻一区二区| 大香蕉淫人网| 台湾成人无码AV| 人人操,操人人| 婷婷91| 午夜欧美神马久久久久| 欧美熟女丝袜| 国产精品久久久久久久久久久久| 激情抓乳插进去啪啪啪日韩 | 精品欧美不卡在线播放| 欧美日韩国产中文精品字幕自在自线| 午夜福利免费精品视频| 精品精品精品| 欧美精品 - 91爱爱| 国产夫妻性生活视频| 91P0RNY大屁股人妻| av午夜影院在线播放| 超踫中文字幕| www.91欧美| 国产综合久久久麻桃个| 先锋影音av先锋一区| 久久男女激情视频网站| 亚洲操人| 97精品97| 亚洲美女AV无码| 日韩无码黄色片| 国产精品久久久亚洲一区| 成人熟女区| 亚洲另类天堂| 性爱视频免费网址| 五月婷婷六月丁香| 日本新免费二区三区| 亚洲不雅视频1区二区| 操逼1区| 精品免费1| 人人操人人摸超碰| 国产欧美精选自拍一区| 久久久无码国精品无码三区三区| 亚洲男人天堂2013| 日产操逼| 920日本午夜免费| 国产欧洲精品亚洲午夜拍精品| 激情小说日韩无码| 91亚洲黑人| 3级毛片一二| 人人操人人叉人人插人人| 大香蕉 222| 亚洲色综合| 欧美人妻精品一区二区| 噜噜噜久久亚洲精品色情| 人人搞人人插人人操| 狠狠狠狠狠干| 精品少妇一区二区| 99久久婷婷丁香| 欧美色自拍| 日韩色| 91国产美女丝袜足交精品视频| 手机看片91人妻| 激情99| 久久这里只有精品9| 亚洲色吧网| 久久久精品,3| 涩综合导航| 亚洲国产剧情少妇激情| 玖玖爱综合网| 亚洲AV无线| 无码人妻精品一区二区三区九九| 国产人妻久久精品一区二区三区| 亚洲国产一级精品毛一级精品看免费视频| 嗯啊啊啊轻点视频| 97精| 97超碰国产精品| 吊色| 国产又大又硬又长又粗| 成人久久久精品| 午夜视频黄| 亚洲第一综合| 蜜臀久久久99久久久久| 欧美78p| 国产久久免费精品视频| 欧美香蕉视xxx| 日本成人A片免费看| 丝袜AV一二三区| 久久丁香久草综合网| 欲射影视| 萌白酱自拍视频| 淫纸中9区| 天天看天天综合成人网| 色99999| 天天内射| 99精品久久久久久久婷婷| 九九九九一区| 极品丝袜无码| 欧美福利视频啊啊啊啊| 少妇内射www在线观看视频| 伊人热综合| 天天激色| 欧美超碰人妻97| 欧美aaaaaaa| 青青草公开在线免费不卡视频| 91九久| 韩国一级婬片A片无码天美| 欧亚韩国999| 日韩视频啪啪| 一区二区三| 色偷综合| 日韩中文字幕二区| 日韩激情电影中文字幕| 亚洲综合色在线| 亚洲人人操| 二男一女成人A片| 丝袜无码a片| 久久九九网| 先锋激情∨在线视频播放| 啊啊啊啊好疼视频| 色999人与兽| 国产亚州精品美女久久久免费| 四季av一区二区凹凸精品小说| 800zy一区二区| 天天色天天干天天射| 精品传媒在线一区| 欧美大干日韩| 95人妻爽爽人人做人人澡| 欧美性生活免费网| 天美91| 欧美大片一区二区三区| 91neishe| 第一高清av中文字幕| 日本在线观看网址| 黑人精品欧美一区二区蜜桃| 婷婷久久五月| AV网站高清无码在线观看| 欧美性xxxxx狂欢| 欧美激情亚洲情色| 9 7超碰在线免费观看| 久久婷婷五月| 国产黄片精品在线| 无码精品久久久久久亚洲| 91亚洲黄色网| 欧美综合在线91| 一二三啪啪专区| 一起草av| 国产精品制服丝袜清纯唯美 | 亚洲av强奸乱伦| 大黄片做爱的大的| 好属操| 一区二区三区麻豆| 国产丝袜一区二区三区| 观看免费区二区三区二| www.婷婷| 97人人草| 新婚人妻扶着粗大强行坐下| 搞中出久久| 极品欧美一区二区三区| 综合五月天| 91N综合网| 色欧美在线| 亚洲诱惑天堂| 少妇人妻激情四射| 欧美伦乱爱| 日韩国产乱子伦App| 亚洲性爱电影| 欧美性爱三区二区| 人妻一区视频| 亚洲欧美激情在线视频| 麻花豆传媒剧国产MV出差| 亚洲 小说 欧美 激情 另类| 欧美在线中M| 婷婷色香| 97人亚洲综合字幕| 亚洲AO在线| 青青青操| 中文乱码99| 亚洲美女30b| 亚洲最大的黄色电影网站。| 人妻在线臀日韩| 精产国品一区二三产品| 欧洲综合视频| 99国产在线绯色一区| 色狠人在线99| 自拍盗摄一区| 久久国模av| 久草久日| 久久人妻少妇| 十八禁黄色| 综合网欧美|