久久亚洲成a人片熟女精品色一区二区三区|国产精品视频第一精品视频|av天堂热无码手机版|亚洲?v无码久久无遮挡|国产精品偷伦视频免费观看国产|麻豆国产自产精品丰满熟妇|av无码av不卡一区二区|久久亚洲精品中文字

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營的一線實(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ù)庫操作、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ù)庫建表與存儲(chǔ)processor.py完成缺失值處理與異常值清洗visualizer.py生成趨勢(shì)圖與熱力圖配合requirements.txt與README.md便于快速部署。目前已有125人學(xué)習(xí)下載讀者可直接運(yùn)行獲得全國主要城市空氣質(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)流水線你手頭有一堆來自國控站點(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ù)庫建模、臟數(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ù)庫設(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ù)庫雙擊可查、拖拽即走、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ù)庫僅含 4 張表拒絕冗余建模。所有字段命名遵循snake_case單位統(tǒng)一標(biāo)注在注釋中非字段名避免pm25_ug_m3這類自解釋型命名帶來的長度災(zāi)難表名字段主鍵標(biāo) *說明約束stationsid*,code,name,lat,lng,type,status站點(diǎn)元信息code為國控站唯一編碼如1001Atype區(qū)分urban,suburban,roadsidecode唯一索引parametersid*,code,name,unit,min_limit,max_limit污染物參數(shù)定義code如PM25,NO2,O3_8Hmin_limit/max_limit為國標(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ì)。前者只做最小化入庫不做任何計(jì)算后者才承載清洗邏輯。這保證了“原始數(shù)據(jù)不可篡改”的審計(jì)底線——哪怕清洗腳本出錯(cuò)也能回滾到 raw 表重跑。2.3 初始化腳本一鍵創(chuàng)建帶索引的空庫執(zhí)行以下命令生成結(jié)構(gòu)完備的初始庫無任何數(shù)據(jù)# 創(chuàng)建空數(shù)據(jù)庫并執(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 年中國國控網(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)因國控站數(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 國標(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庫的 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 算法適合長序列 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ù)中平衡了過檢太多短過程和漏檢合并長過程最終只保留max_conc 75的區(qū)間緊扣國標(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
返回資訊列表
日韩一级二级| 色色色综合| 一道α片欧美| 开心激情站| 操逼免费视频无码国产| 狂操嫩妻视频一区二区三区| 欧美色www亚洲国产阿娇要播| 日本操逼视频免费| 熟女高潮合集-永久久久-成人AV | 亚洲三级网址久久最新| 热久久91婷婷| 人妻精品一区二区全免费| 老司机午夜福利视频一区二区| 青青草精品| 国产怡红院在线| 激情五月天中文字幕色| 尤物视频一区| 亚洲有码 欧美精品| 97香蕉人人乳| 97超级久久| 色网在线视频观看免费| 人妻加勒比东京热| 超碰综合97在线| 欧美色狠| 久久98| 欧美少妇高潮久久91| 97爱爱官网| 激情综合网五月婷婷五月天| 日本不卡三级网在线播放| 九9热伊人| 伊人丁香五月婷婷| 久热69九色熟妇97| 亚洲九九视频| 91久久久久久久久18| 女生自91网站| 国产精品亚洲美女久久久久| 嗯啊抽插大香蕉网页| 67914在线精品观看| wuyechaopeng| 97在线观看| #NAME?| 婷婷人妻激情| 97jingpin| 国产精品点击进入在线影院| 成人五月天丁香激情综合| 一级@啪啪视频| 日韩欧美成人综合在线| 久久久久久久一级黄色打同平台| 欧美极度丰满熟妇hd| 智利AV在线网| 成人在线视频网| 日韩精品一二三四| 小日子操bb在线看| 亚洲限制级| 色偷综合| 四虎 精品 WWW| 97色操| 午夜免费视频1000| 久久免费9| 一区二区三区在线资源| 天天天干977| 色婷婷丁香五月| 青青久久艹| 久热伊人99re| 精品亚洲国产成人av网站| 精品999日本| 九九色图| 2019精品国产无码成人| 久久久国产精品亚洲精品| 99性爱在线观看| 精品在线78| 日韩啪啪啪视频| 日本护士高潮| 家庭乱伦国产| 亚洲 暴爽 AV人人爽日日碰| 天天影视之亚洲综合网| 一二三四日本视频高清| 强奸乱伦av电影| 亚洲乱码精品一区二区| 婷婷激情五月综合| 中文字幕-区二区三区四区视频中国| 亚洲成人一区二区精品| 啊啊啊好想要| 9Ⅰ超碰| 丁香激情网| 日韩中文字幕av在线播放| 人人操人人摸人| 欧美色乱| 九九国产热| 久久人人爽av亚洲精品天堂桃色| 91爱剪切久久| 日韩中文字幕二区| 一区超碰一区| 2019午夜福利视频| 少妇精品久久久八区九区| 久久人爽| 日本一区二区亚洲综合| 久久首页| 亚洲色综合| 久久久av爱| 国产精品乱码久久久久| 小视频国产| 久久99精品视频| 日韩精品熟妇| 亚州综合AⅤ| 97久久精品亚洲| 色狠狠 - 百度| 一本色道久久天天射天天干| 97在线观看免费视频| 久久久久久久唑| 欧美亚洲综合高清在线| 2021国产成人精品久久| 天天日天天看| 久久国产熟女影院| 国产亚洲深夜激情| 日韩亚洲中文字幕在线| 可以在线观看AV的网站| 99在线观看| www鬼畜国产男人的天堂| 91国产大片| 天天舔天天日天天射| 大逼色网站| 香蕉国产精品麻豆亚洲欧美日韩| 日本性爰一道本| 五月激情小说| 99re这里| 色网站导航大全| 久精品无码av一区二免费国产在线观看| 久精品无码av一区二免费国产在线观看 | 福利在线视频一区二区| 日本亚欧爱爱| 色在线视频导航| 被体育老师抱着c到高潮| 丁香九月婷婷| 蜜桃久久久久久久| 精品一啪| 2025亚洲男人天堂| 天天操福利视频综合网站| 欧美色图片欧美色图| 欧美αv.com| 日本福利社| 亚洲色图 欧美| 色色色色色色色色色色色色色色综合| 色男人色天堂东京热| 任你干在线视频| 久久精品国产99精品亚洲蜜...| 97中文字幕一区| 国产精品乱码久久久久| 国产97色在线| 欧美线天码中字| 一区二区三区在线美女| 久久香蕉国产传媒一区剧情天美| 久久久久久国产成人| 夜夜福利| 日本欧美成人片AAAA| 一区二区高清视频| 欧美暴力猛交| 五月天激情小说| 亚洲日韩美女中文字幕乱| 人妻 丝袜美腿 中文字幕| 久久五十路熟女人妻| 天天综合网入口~91| 日韩av性爱在线播放| 欧美亚洲第1页| 8x福利精品第一福利视频导航| 丰满少妇人妻久久久久久| 91操操操操| 伊人991| 性爱乱伦网址| 婷婷丁香激情| 啊啊啊不要好爽日韩无码一区| 欧美日韩一区二区三区四区蜜桃| 破处bbq| 九九玖玖精品| 波多野42部无码喷潮在线观看| 欧美,亚洲,日韩,v,天堂,手机在线观看 | 操高情无码| 校园春色美腿丝袜 | 国产1024在线播放| 九九热在线精品视频| 香蕉综合网| 欧美亚洲一级在线观看| 玖玖久久久| 人妻激情在线视频| 激情露脸爱| 婷婷久久综合久| 岛国AB视频| 懂色Av| 九九九九9999| 熟女高潮精品一区二区| 中国小夫妻勾搭露脸淫荡对白| 天天躁狠狠躁av| 久久久久9| 91无码人妻精品一区二区三区蜜桃| 91人妻最真实刺激绿帽| 激情综合婷婷| 色老久久| 日韩精品一区二区日韩| 超碰 另类 欧美| www.激情| 97人人夜| 婷婷五月天激情小说| 久久精品女同亚洲女同13| 亚洲欧美日韩有码| 无码人妻一区二区三区色欲aⅴ| 色五月综合网| 欧差乱伦二三| rivers-china.com| 91neishe| 亚洲色图亚洲无码强奸乱伦| 夜夜爽夜夜操| 97在线观看免费视频l| 顶级丝袜熟女一区二区三区 | 性色av网站| 青青草依人大香蕉| 亚洲成人妻日韩在线| 亚洲熟女中文字幕在线| 欧美日韩午夜精品一区二区三区| 夫妻AV网站| 91丝袜美腿网站| 亚洲精品亚洲人成在线麻豆| 成人小说另类在线| 欧美 色 亚洲| 久久精品人妻一区二区三区| 一区二区 日韩 欧美 国产 传媒| 久草五月| 91精品国产高清久久久久久,亚洲成人| 91啪啪| 久久久999国产| 人妻夜夜爽天天爽麻豆三区网站| 婷婷五月丁香五月| 激情五月激情综合网| 亚洲中文字母在线播放| 久久精品国产97欧美精品亚洲 | 99热综合| 国产日韩欧美三级片| 日韩免费看在线黄色片| A级片日韩欧美国产欧美视频精选观看 | 天天影视射综合网| 麻豆精品三区视频| 亚洲午夜蜜臀| 精品久| 日韩少妇无码| 欧美精品久久久久久久丰满| 日韩成年人性爱视频| 91黑人狂躁丰满熟妇| 少妇激情一区二区三区视频| 中文字幕一区二区三区四五区| 天天操熟妇| 国产又粗又长的视频| 国内外激情在线| 精品无人区麻豆乱码1区2区图片| 少妇激情一区二区三区视频| 97精品久久| 国产精品ⅴ无码大片在线看.| 伊人操你| 超碰成人免费| 91总综合网| 老熟女综合网| AV一起草在线| 99久久久99久久91熟女| 91天堂视频| 中出20p| 天天草天天日| 久久艹逼视频| 亚洲大胆人体av| 亚洲狠| 成人亚欧免费视频| 三级精品三级在线观看| 婷婷香网站| 亚洲人妻一区二区三区| 日韩欧美性吧婷婷乱伦大香蕉| 亚洲一区二区三区婷婷| 性做久久久久久久| 欧美操逼视频二区| 国产精品不卡一区二区三区av| 在线一道啪| 亭亭丁香激情| 亚洲AV麻豆Aⅴ无码电影一| 亚洲av淫乱| 久久动漫精品视频这里只有精品| 绯色一区二区三区不卡少妇| 中文字幕啊啊啊在线观看视频| 久久草视频污视频| 特级毛片特黄久久免费看 | 精品少妇99| 久久AV无码网址| 哑洲在线| 色色激情五月天| 青草精品视频一日本久久久久网站| 操逼逼一区视频| 国产精品色哟哟| 乱抡国产91| 国产精品网站免费| 亚洲第一精品在线视频| 日韩av情韩国爱禁区av一区二区 | 一区,二区,三区视频| 久久久蜜桃臀无码视频| 九九热这里只有在线精品视 伊人草 成人菠萝蜜视频在线观看 | 免费综合亚洲中文| 亚州综合AⅤ| 日韩成人精品视频自拍| 色97欧美| 婷婷爱五月| 日韩三A大片在线观看| 精品美女少妇一区二区三区| 91色色色| 日本不卡高清免v欧美日韩在线观看| 久九九九九九九九热| 天天天天天干夜夜夜夜夜操| 日韩无码一区二区三区| 欧美熟妇操操视频| www.99热| 久久精品店| av一区二区三区不卡| 亚洲熟久久| 骚逼高潮久久精品| 亚洲中文字幕久久人妻| 人人操人人93| 欧美—性—交—色| 色偷综合| 吉川爱美亚洲二区在线| 五月天黄色av| 激情五月天综合网| 国产一区二区三区影片| 91东京热男人的天堂| 熟妇人妻丰满久久久久久久无码| 日本天天干天天搞一区| 99re3这里只有精品| www欧美性爱| 日本免费中文字幕在线| 国内偷自视频区视频综合 | 少妇天堂| 九九九999久久久网站| 亚洲熟久久| 无码人妻精品一区二区三区九九| 久久精品免费| 久草资源在线视频官方总站日韩丝袜美腿| 日本狠狠干| 亚洲第一页色| 美日韩一卡二卡三卡免费人妻精品| 婷婷丁香五月天亚洲天堂网| 蜜乳性色无码专日粉嫩骚逼AV| se吧提供国产乱老熟视频胖女人| 新婚人妻扶着粗大强行坐下| 精品无码一区二区三区| 日夜尻逼网| 久久久久国产无av| 青青草国产一区二区三区| 国产青青美女玩逼视频| 久久人妻一区二区三区高清| 久草精品在线| 97操| 黄色性爱网网| 蜜桃精品一区二区三区ww| 亚洲欧美天堂在线| 青青草久久| 欧美亚洲首页| 日本操大逼| 毛片电影一区二区三区| 天堂av2019| 秋霞午夜视频一区二区| 91欧洲入口| 国产一级内射高清视频| 综合欧美激情网| 另类视频在线| 国产精品久久久999| 免费男人的天堂| 成人小说另类在线| 久久人人爽人人爽人人片Ⅴ| 色女网日韩| 98福利在线视频| 久久精品人妻一区| 日韩不卡av一二三| 天天舔天天日天天射| 91天堂| 欧美人妻一区| 九九成人精品| 久久久久少妇| 色播五月丁香| 天天日天天干天天摸天天操| 约操熟妇| 日韩视频小说在线观看 | 亚洲综合有码| 久久久久久国产手机AV| 色麻豆AV| 翔田千里AⅤHD无码| 精品大久久| 久久精品超碰| 免费亚洲黄色视频在线观看| 91高清欧美| 青青草国产欧美非洲黑人| 在线看免费无码AV天堂的| 少妇色综合| 日日日日做夜夜夜夜无码| 久艹视频在线| 一级黄色性爱A级片| 久久最新视频免费观看| 天堂无码精品国产久| 91欧美性| 屌逼麻豆| 国产v片在线免费观看| 影音综合网| 日韩综合无码色欲vv| 热热热热日日漂亮永久永久国产日| 伊人网免费视频| 欧美精品偷拍| 久99热| 婷婷婷婷婷婷久久久久| 神马久久久久久久久久| 国产精品久久伊人| 亚洲精品久久久久久久蜜桃臀| 9久久9综合| 精品蜜乳AV免费观看| 国产精品一区二区后入| 婷婷色婷婷| 国产v片在线免费观看| 韩国嫰模上门援交视频| 91在线综合网| 亚洲欧洲网站免费观看| 秋霞成人一级在线观看| 夜夜黄| 欧美暴力猛交| http://qxhbdz.com| 亚洲一区二区精品福利| 国产亚洲99久久精品熟| 传媒在线观看一区二区三区| ′ !γ}丶。。久久精品欧美一区二区三区| av在线播放国产一区| 乱伦强奸区日韩| 国产精品盗摄 偷窥盗摄| 乱伦系列一区二区| 久久综合日韩亚洲欧美| 91欧美色| 啪一啪免费视频| 亚州少妇| 99少妇| 韩三级a视频在线观看| 99色天堂| 国产人妻精品一区二区三区秋霞 | 中文字幕国产| 碰碰在线视频| 一区二区三区一亚洲中文字幕、综合区灬 | 亚洲清纯综合| 99在线免费公开视频| 日本三级中国三级99人妇网站| 青春草A| 国产激情视频一区区三区| 美国日韩黄色片| 亚洲www91| 亚洲天堂男人网| 丁香九月激情啪| 欧美色图人妻| 白嫩国模丰满一二三区| 色香在线| 精品国产乱码| 绯色AV粉色AV蜜臀AV| 东京热大香蕉| 丝袜熟女2P| 色综九九九一区| 亚乱色| 黄日韩| 6080YYY午夜理论片在线观看| 青娱乐导航AV| 久久精品国产亚洲AV清纯| 无码色| 男人天堂资源| 尻女朋友一夜| 亚洲一区在线观看欧洲| 狠狠热这里都是精品| 久久综合九色综合欧洲98| 韩国一区二区精品亚洲| 国产精品点击进入在线影院高清| 色诱中文字幕| 欧亚成人| 久久久96精品| 日日操天天操| 97干在线| 免费人人搞97| 久草免费福利在线播放| 蜜桃精品视频一区二区三区| 日本福利二区视频| 加勒比综合88| 美国美女AV在线| 超碰97人人cao| 四虎免费看黄| 久久AV无码网址| 99热精品在线观看| 日本三级久| 日韩免费av片高清无码| 传媒免费一区二区三区| 强奸乱伦av电影| 欧美亚洲今日在线| 亚洲五区熟女| 一,爱啪啪,在线免费视频| 2003天天干夜夜操| 最新AVzaixian| 日本免费一级AAA大片器| www. 男人天堂成人在线| 国模精品一区二区三区苹果色戒 | 岛国AB视频| 99久在线精品99re8| www.狠狠| 久久五十路熟女人妻| 成年人免费观看网站| 亚洲日韩一区电影| 日韩性爱人人爱人人操| 欧成人精品一区二区三区| 欧美另类色| 美國A片| 四虎免费在线观看| 超碰久久网| 日产狠狠干| 午夜激情成人在线观看| 欧美男人的天堂| 夜夜久久| 欧美|91色综合| 国产99精品一区二区三区免费| 亚洲第一页综合在线| 高清不卡一二三区视频......| 草草影院日本第一页| 啊啊啊啊啊啊在线| 最新9久久久9免费视频| 亚洲人在线成线成人| 熟女突然公开看18禁影片 | 欧美日韩99| 超碰色男人操熟女| 国产老太乱伦一区| 久热这里| 午夜精品人妻二区三区| 二对二中文字幕。| 91亚州日韩高清| 韩国三级理论在线| 国产精品宅男免费| heyZO天然素人无码AⅤ专区| 嗯嗯啊好爽| 五月天人妻综合| 欧美情色贴图| 天天享受天天看| 婷婷三区| 国产日本熟女顶级一区二区三区视频 | 在线人人人人人人精品超| 国产黄色视频久久| 精品欧美不卡在线播放| 酒色综合网| 另类欧美综合| 欧美啪啪啪91| 久热精品在线| 欧美日韩亚洲少妇寂寞影院正在播放| 青青草久草AV| 亚洲宗合网| 四虎国产成人精品免费一女五男| 一区二区三区四区五区高清无码永久视频 | 色色网91| 国产精品亚洲无码| 370p日韩欧美亚洲精品| 亚洲国产av中文字幕久久| 欧美高清无码免费视频高清版| 午夜精品久久99蜜桃的功能章节| 亚洲色交| 亚洲性网| 一个色导综合| 国产日韩精品人妻久久久久色欲网站| 欧美日韩午夜精品一区二区三区| 无码直播久久久| 欧美一二三级精品在线| 国产精品亚洲一级av第二区| 国产精品久久久久无码A√| 五月婷婷六月丁香网址| 日韩操逼HD| 久久亚洲AV成人精品无码| 夜嗨影院| 99久re热视频精品98| 九九色色| 超碰在线974| 亚洲欧洲久久天堂| 国产成人亚洲精品无码最新在线| 91美女视频在线观看| 亚洲 无码 偷拍| 最新av网站在线观看| 国产精品无套内谢| 偷窥自拍亚洲天堂网爆| 91亚洲黑人| 97视频7| 亚洲亚洲亚洲天堂天堂| 亚洲三级。日韩三级| 97无码视频在线播放| 国产精品成人无码a v毛片| 国产高清MV操逼视频| 激情婷婷五月天| 久久久久久亚洲精品中文字幕人妻| 成人综合网 欧美| 精品久久9| 亚洲欧美日韩激情不卡| 国产亚洲日韩在线三区黑人| 97干在线| 天天摸夜夜操视频| 老鸭窝成人免费毛片视频| 大香蕉免费3| 91在线无码精品秘 软件| 欧美专区第一页| 色亚州人久干视频在线观看免费版| 东北女人高潮视频| 日韩在线一区二区| 日韩在线76| 97av,com| 国产日韩无码一区二区三区久久区| 首页中文字幕中文字幕免费| 综合网~91综合网| 婷婷性网| 成人 日本A片无码8888| 很黄很污的免费网站| 日韩BBN| 樱花蜜乳av| 亚洲另类综合欧美| 97精品一区| 国内偷自视频区视频综合| 26uuu欧美| 视频黄站| 色在线亚洲视频www| 毛片视频白嫩| 国产精品视频在线观看| 久久久久九九九| 97 视频在线| 亲子敌伦对白在线播放| 久久婷五月| 一二视频神马久久传媒| 黑人白女精品一区| 伊人国产av| 欧美啪啪色吧在线| 日本高清久久| 91天天综合在线观看| 欧美性爱www免费版| 日逼五月天| 91亚洲色图| 亚洲精品99| 丝袜加勒比| 日韩女模中文造逼| 少妇精品久久久八区九区| 国产成人无码啪| 中日韩久久人妻一区二区| 国产91精品在线免费| 婷婷综合| 97综合在线| 久草成人福利导航| 综合久久97| 国产欧美美女免费观看视频| 精品福利| 嗯嗯嗯啊啊啊操的我好爽 | 性感女人网页在线观看视频| 亚洲欧美情色| 91肏屄网| 国产精品视频自拍在线| 九九九九九九九九九九精品视频| 亚洲欧洲综合av在线| 黑人精品久久97| 国产亲戚伦亲在线| 天天干夜夜操一区二区| 97在线精品| 日韩猛交| 国产男女无套97| 日本免费一级AAA大片器| 熟女高潮合集-永久久久-成人AV| 艹比视频国产精品| 久草电影网| 久久侵犯人妻爽爽爽| 视频国产成人精品日本亚洲18| 日本一二三高清| 97在线视频观看网站| 日产成人久久| 日韩欧美视频青青| 亚洲国产一级黄色视频| 久久爱超碰网| 强奸乱亚洲| 97精品视频| 樱花草社区www中国| 欧美日韩性爱无码| 98久久超碰| 综合网亚| 色婷婷综合网站| 欧美精品三区| 国产精品3| 丰满欧美少妇| 国产精品久久久久久久黄无码| 5252色欧美在线男人的天堂| 久热伊人99re| 亚洲第2页| 亚洲欧美天堂| 五月天亚洲网| 久久伊人在线五区| 国产视频一区二区免费| 欧美精品三级黄片| 欧美在线第五页| 97 亚洲 日韩 欧美 在线| 久久精品高清AV| 97这里只有精品| 公司1区2区3区精产精| www.狠狠干.coom | 2025亚洲男人天堂| 美女自卫慰黄网站免费| 国产传媒午夜理伦精品| 男人的天堂99| 精品久久9| 韩国三级三级BD在线| 国产精品一区二区黄片| 欧洲欧美视频一区二区| 四虎影视精品| 欧美精品,四区。五区| 中文字幕视频一区视频二区| 欧美婷婷五月天| 大香焦A片| 久久久无码av精| a片 xxxx受爽视频| 校园春色 亚洲| 男人精品天堂一区| 欧美美女在线高潮999| 丁香五月偷拍| 操逼逼无码| 九九久久一区二区伦理| 内射老妇BBWX0C0CK| 欧美天天综合网版| 色欧美色交综合| 日韩精品电影| 久久日本熟妇熟色高清 | 国产精品嫩草影院午夜两性| 国产精品香蕉| 亚洲人久久久久日| 色网亚洲人| 亚洲AV不卡在线观看| 97超碰在线资源网站| 久久综合精品一区二区三区| 台欧久久精品视频| 欧美熟爽综合| 午夜精品99久久久久传媒| 最新欧洲欧美日本激情网站| 人妻22p| 99日韩| 亚洲综合婷婷| 九九99精品| 色色婷婷丁香| 成人婷婷丁香| 猛交交| 热久久91婷婷| 超碰在线974| 青青草十区九区爱夜| 欧美高清性猛交| 欧美日本久久精品一区 | 午夜啪| 亚洲欧美国产中文视频| 欧美中文字幕日韩在线| 亚洲高清无毛一区二区| 1级午夜影院费免区| 国产99精品一区二区三区免费| 在线播放一级无码视频| 无码操逼网| 久久99午夜精品一区人妻| 国产亚洲日本精品在线| 去干网最新版| 日韩精品区二区三区不卡| 91爱综合| 91五月天| 中文字幕av片| 日本一区二区三区四区五区六区七区八区九区| 久久久久久久九九九九| 大香蕉乱级| 成年女人黄网站| 女人被添高潮免费视频| 97超碰色五月| 国产午夜视频| 色欲久久99精品久久| 伊人九九九| 98人妻精品一区二区色欲| 九九干| 99精品在线| 欧美久久毛片基地| 综合网亚洲1| 久久97| 欧美日韩性爱无码| 久久黄黄| 超碰久久网| 久久9久| 午夜福利精品| 嗯啊免费视频| 欧美丝袜美女电影一二三四区| 97在线免费视频观看| 日韩人妻一区二区| 丝袜熟女一区二区三区| 1024亚洲中文字幕久在线看片你懂的| 九九九影院| 91宗合网| 中日韩熟女| 欧美第一页性| 超碰97综合网| 国产精品日韩在线一区| 五月天社区| 亚热日本熟女| 欧美精品宗合| 熟女乱伦二区| 男人精品天堂一区| 一级性爱视频免费在线| 日本99热| 欧美手机在线综合| 国产高清精品一区二区三区毛片 | 激情婷婷丁香网| 手机在线免费看的av| 五月色综合| 国产丝袜高跟美女av免费观看| WWW.操逼.COM| 综合熟女| 99精品无码| 中文字幕亚洲热播人妻| 天堂国产AV| 免费成人自拍视频在线| 曰韩无码777| 色偷综合| 精品人妻1区| 精品国产网站| 91天美| 国产精品交换一区二区| 偷拍99| 在线啊v一区| 啊啊啊啊啊好舒服视频| 亚洲精品国产无码高清| 色狠狠综合噜一二三区| 国产乱子伦一区二区三区在线观看| 丁香五月激情综合国产| 久久久少妇诱惑精品视频| 又粗又长又爽在线观看| 啊啊啊97视频| 久久久精品中文字幕爱豆| 久久久久久久久久久人妻| 亚洲在饯| 91在线色综合| 欧美天天射| 国产乱码久久| 日本一二区不卡| 麻豆久久视频在线地址| 婷婷综合伊人一区| 中文字幕日韩国产传媒欧美精品| 91精品人妻一品二品三品| 五月综合久久| 亚洲精品99999| 国产精品天美传媒| 一级黄色性爱裸体视频| 中文字幕55555| 欧美探花网| www. 男人天堂成人在线| 综合久久六月久久婷婷| 日韩精彩视频| 六月丁香婷| 91骚熟女| 伊人国产视频| 国产剧情AV不卡在线观看| 国产熟码AV| 人妻少妇精品一区二区三区| 搡老女人老91妇女老熟女| 97超碰无码网| 精品久久久久久中文| 青青草原香蕉日本Ap| 色99在线| 一级AV性爱| 91美女国产在线| 91美女丝袜诱惑视频| 国产无码精品久久久久久| 久久久久久中文版| 日韩av不卡在线观看| 女生看匆91网站| 日韩精品人妻系列无码天堂| 日本免费人成视频播放120秒| 久久精品人妻一区二区三区| 亚洲激情网一二三四区| 国产精品露脸在线观看| 少妇特黄一区二区三区| 极品五月天噜噜| 三级特黄60分钟播放| 一本大道青青| 亚洲av热热色| 色狠狠综合| 久久草草亚洲蜜桃臀| 九99久久| 99热精品青草在线 | 91天美传媒在线观看| 麻豆这里只有精品| 操B视频日韩无码| 国产97av| 综合视频91| 偷拍欧美综合| 网页导航五月天免费一二三区| 九九九九久久久久| 97超色| 中文字幕在线观看网页| 久久男女激情视频网站| 另类亚洲一区二区三区| 国产精品另类| 人人爽人人精品乱人伦AV| 亚洲综合网电影91| 国产精品蜜乳AV| 四虎午夜影院| 色欧洲| 日本精品网站在线中文| 国产农村妇女毛片精品久久| 性爱AV天堂| 人妻密肉在线观看| 99精品在线| 婷婷视频在线免费观看| 久久久99免费| 九九碰九九爱97超碰| 亚洲综人网| 亚州欧美总和| 四虎AV影视国产精品亚洲精品| 色情综合网| 日亚韩精品视频二区三| 精品成人亚洲午夜电影| 亚洲无码电影久久久| 加勒比海人人操超碰在线| 亚洲精品久久一区二区三区蜜桃臀| 天天综合网久久ww| 床上啊啊啊一区二区三区| 91精品无码人妻系列| 无码最新| 尤物网址| 韩三级a视频在线观看| 国产美女高潮| 97欧美| 人人妻人人澡人人爽久久av| 91操熟妇| 国产97色在线 | 亚洲| 玖日综合网| 久草成人影片| 夜夜国自区| 大干人妻| 淫纸中9区| 欧美亚洲天天| 91欧美网| 精品人妻一区二区三区四区不卡在| 欧美高清91| 9久久久久久| 97碰碰色| 香蕉人欧美综合| 大香蕉一级黄色片久久| 偷拍精品一区二区三区| 99热在线观看| 秋霞网无码| 秋霞一级鲁丝片A片| 欧美呦呦性爱| 亚洲 日韩 丝袜 熟女 变态| 91快色色色色色| 久久性爱大全| 97操碰| 强奸少妇AV导航网| 青青草精品| 激情文学 亚洲图片| 国产日韩中文字幕欧美| 精品无人区麻豆乱码1区2区图片| 色欲天香天天综合网-成年人三级片网站-欧美乱妇狂野-日韩国产专区-久久久久久 | 五月激情啪啪| 人妻天天操天天爽视频免费| 爱干爱射网啊啊啊| 四季AV一区二区凹凸精品小说| 神马久久69| 97日韩欧美亚洲| 亚洲国产综合图区中文字幕| 乱伦日本中文自拍| 国产高清免费不卡av| 亚欧高清v| 96精品在线| 曰本熟女视频| 超碰在线综合97| 亚洲97综| 欧美色视频在线| 伊人五月天| 污到发麻的视频 国产| 国产妇女精品视频青青草| 亚洲 欧美 日本 国内 首页| 一起草高清无码| 午夜爽爽爽在线观看永久入口姬片| 国产动漫操逼视频| 婷婷国产精品九区| 亚州九九九精品视频| www欧美91| av强奸乱轮| 伊人网av| 天综合网欧美| 婷婷五月天激情四射| 强奸乱伦大香蕉| 亚洲不卡AV在线| 久污| 一级性爱视频免费观看| 中国探花熟女| 夜夜騷av、一區二區| 蜜臀久久99精品久久久久电影| 立川理惠被中出无码| 大香网站| 欧美三级免费伊人| 农村少妇久久久久久久| 日韩欧美成人午夜福利| www.婷婷| 97天天插| 欧美亚洲第一页| 国产精品老熟女一区二区| 一区二区三区色综合| 热99这里有精品综合久久| 成人日本视频人妻在线| 色九九九九| 大色综合| www.婷婷| 尤物视频网 刘玥| 大香蕉乱级| 欧美黄页在线| 怡春院久久| 日本性爱少妇| 淫乱图区 | 日日夜夜草草草| 大香蕉伊人网| 五月婷婷六月丁香| 成人资源中文字幕在线观看| 亚州一区二区成人片免费| 久极品在线观看| 啊啊啊啊操死我| 在线国产探花| 亚洲情色综合网| 国产精品亚洲一级av第二区| 欧美 亚洲 大香| 夜草网站| 91女网站| 久久精品国产亚洲AV清纯| 久久久久精| 啊啊啊啊好爽好舒服一区二区易域| 欧美顶级黄片AAAAA在线免费看| 97欧美日韩中文| 可以在线观看的黄色网址| 物尤视频一区二区| 国产肏逼网站| 亚洲欧美色综合| 国产在线综合福利网站| 欧美亚洲国内自拍| av影片在线观看不卡| 久久国产99精品72福利 | 国产欧美日韩在线观看麻豆传媒公司 | 日本精品五区| 亚洲国产欧美日韩人妻日中文| 麻豆亚洲AV成人无码久久精品| 丁香六月啪啪| 9丨久久九九九| 久操黄色视频| 欧美成人免费在线观看| 免费看污网站| 免费少妇一区二区| 中文字幕、久久精品国产2020、久久综合久久自在自线精品自、亚洲 | 蜜臀网址在线| 亚洲综合五月天| 91综合无码| 亚洲成人网站在线观看| 亚洲黑丝在线| 中文字幕乱碼在线| 91欧美丝袜| 亚洲日韩天堂| 久久色激情一区二区三区| av影片在线观看不卡| 欧洲天天在线| 久久久一区二区三区三州| 久久久久网站-538在线视频-欧美永久乱码| 欧美亚洲国产91在线| 久热久| 女同性恋久久| 久久久久久久久一区二区三区| 91N欧美| 人妻偷拍一区二区三区| 98超碰日本| 97久久视频| 久久久久久久免费A片国产成a人亚洲精∨品无码 | 网友自拍第1页| 性欧美天天| 国产精品久久久久久片| 久久久久久九九九九九| 国产专区路线| 日韩精品亚洲专区在线影视| 日韩欧美女求操每天更新| 久久综合乱子伦国产免费| 久久国产乱子伦精品免费女人| 性欧美| 天天日日本| 韩国一级做A片免费的| 91处女在线观看| 日本顶级天天操狠狠操夜夜操中文字幕| 欧美一级A片在线看视频性色| aV中亚| 精品综合久久久久久97| 国产乱码久久| 亚洲天堂人妻熟妇视频| 亚洲另类天堂| 中文字幕伊人| 亚洲情色五月天| 国产视频不卡在线观看| 国产精品国产亚洲区艳妇糸列| 亚洲综合另类色图| 人妻出轨一区二区三区| 99精品久久久久久久婷婷蜜桃| 女性喷水高潮在线观看| 亚洲双插| 天堂射| 怡红院怡春院| 99婷婷| 国产午夜无码片在线观看影视 | 肥臀熟女福利视频一区二区| 思思热免费视频观看| 天天爽夜夜爽夜夜爽精| 蜜桃久久一区二区| 俺也射| 日日做夜狠狠爱欧美黑人| 天天看少妇| 色色色热| 最新国产精品久久精品| 岛国激情视频在线观看| 久久国产成人精品国产成人亚洲| 久久精品无码熟妇一区二区三区视频导航 | 高精欧美色| 91国产丝袜美女| 蜜臀99999| 91丝袜美腿网站| 国产又粗又又黄又猛| 最新日韩黄片| 永久免费发布性爱网| 免费福利视频中文字幕| 老熟妇乱轮| 亚洲图片激情小说| 欧美天堂在线| 78m成人视线| 另类老少妇| 精品美女人人干| 91色色综合| 91 综合 色| 亚洲欧美日韩电影网站一区| 好看的91视频| 青青久操| 久久精品视频28| 亚洲综合在线高清| 亚洲、日韩、综合、另类| 怡红院亚洲怡春院av| 大香久久| 欧美色交| 亚州高清AV| 一区超碰一区| 人妻少妇精品无码专区二区密桃| 九一国产精品| 欧美人妻另类在线| 插入粉嫩少妇视频| 本道在线| 欧美色爱综合| 992大香蕉| 我要色综合网| 啪啪视频免费在线观看| 少妇久久| 2025年A片视频精品| 欧美激情视频在线一区| 亚洲 日本 国产 综合| 无码天天操| 亚洲女毛多水多21P| 91超碰人人操| 欧美久久九九|