国产成人欧美一区二区三区vr_久久国产精品人人爽人人爽_国产精品永久免费播放_肉欲啪啪a∨无码精品一区二区_国产超短裙jk丝袜在线_亚洲AV片高清资源在线观看_国模无码一区二区三区久久_国产成年人未进视频_中文字幕无码精品夜_一区二区三区在线视频免费看_亚洲成AV人片在线观看网址_日本激情视频高清综合久久_亚洲午夜视频福利_国内大量揄拍人妻精品視_久久国产精品福利二区三区

ARTICLE DETAIL

資訊詳情

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

Pandas數(shù)據(jù)處理:異常值、抽樣與聚合避坑指南

Pandas數(shù)據(jù)處理:異常值、抽樣與聚合避坑指南 Pandas 數(shù)據(jù)處理指南異常值、抽樣和數(shù)據(jù)聚合前陣子幫一個(gè)做電商數(shù)據(jù)的朋友看報(bào)表他拿一份兩百多萬行的訂單明細(xì)跑groupby(channel).agg({amount:sum})出來的 GMV 跟業(yè)務(wù)方口徑差了將近三成。他一開始懷疑是 SQL 導(dǎo)出口徑不一致翻來覆去對(duì)了兩天最后定位到三個(gè)問題疊在一起幾條測(cè)試賬號(hào)的大額訂單沒剔掉一批amount為空的記錄被sum當(dāng) 0 算進(jìn)了分母還有一個(gè)渠道因?yàn)槌闃拥年P(guān)系樣本量只有幾十條卻被當(dāng)成正常渠道參與排名。這三個(gè)問題分別對(duì)應(yīng)數(shù)據(jù)處理的三個(gè)基本功——異常值處理、抽樣、聚合恰好也是絕大多數(shù)人覺得自己會(huì)用、真到業(yè)務(wù)里卻頻繁翻車的三個(gè)地方。這篇內(nèi)容想聊的就是這三件事。它適合已經(jīng)能寫df.groupby()、df.sample()但經(jīng)常在結(jié)果對(duì)不上、口徑說不清、跑得慢這幾件事上卡住的人。我會(huì)把每個(gè)環(huán)節(jié)里那些文檔上不寫、但實(shí)際項(xiàng)目里一定會(huì)遇到的東西講透包括檢測(cè)方法什么條件下會(huì)失效、抽樣參數(shù)背后代表什么、聚合結(jié)果怎么組織才能直接進(jìn)報(bào)表。文中用到的代碼都可以直接復(fù)制到 Notebook 里跑數(shù)據(jù)表結(jié)構(gòu)我盡量寫得通用換成你自己的字段名就能用。1. 異常值先分三類錯(cuò)誤值、極端值、結(jié)構(gòu)性偏移處理方式完全不同很多人對(duì)異常值的處理方式是跑個(gè) describe看到最大值離譜就刪掉這個(gè)做法在真實(shí)業(yè)務(wù)里十次有八次會(huì)出錯(cuò)。異常值不是一個(gè)統(tǒng)計(jì)學(xué)概念它是統(tǒng)計(jì)概念和業(yè)務(wù)語義的交叉點(diǎn)同樣一個(gè)數(shù)值在不同的字段上有完全不同的含義。我習(xí)慣先把它分成三類因?yàn)檫@三類的處置邏輯是互斥的。第一類是錯(cuò)誤值本質(zhì)是數(shù)據(jù)在采集、傳輸、錄入環(huán)節(jié)出了問題。典型表現(xiàn)是單位錯(cuò)位金額字段里混進(jìn)了一條以分為單位的記錄、編碼錯(cuò)誤缺失被填成-1、9999、0而不是NaN、類型錯(cuò)位日期列里混進(jìn)了字符串。這類值不屬于偏大偏小它壓根就是錯(cuò)的處理方式應(yīng)該是修正或者置空而不是簡(jiǎn)單刪除。第二類是極端值數(shù)據(jù)本身是對(duì)的只是落在分布尾部。比如某個(gè)大客戶單筆下了五十萬的訂單這個(gè)值真實(shí)發(fā)生了刪掉它等于把真實(shí)業(yè)務(wù)抹掉。這類值要考慮的是它對(duì)我要算的指標(biāo)有沒有影響——算平均值它影響巨大算中位數(shù)幾乎沒影響。第三類是結(jié)構(gòu)性偏移指的不是單條記錄異常而是某個(gè)分組的整體分布和其他分組不在一個(gè)量級(jí)上。比如某個(gè)渠道的客單價(jià)整體是其他渠道的十倍這往往不是渠道用戶質(zhì)量高而是這個(gè)渠道的金額字段包含了運(yùn)費(fèi)或者稅費(fèi)采集口徑跟別人不一樣。這類問題用單變量檢測(cè)方法根本發(fā)現(xiàn)不了必須按分組切開看。1.1 用 describe 和 value_counts 做第一輪體檢動(dòng)手之前先做體檢不要上來就寫過濾條件。我通常跑這么幾行import pandas as pd import numpy as np df.info() df.describe(includeall).T df[amount].value_counts().head(20) df[amount].value_counts().tail(20)describe看的是分布輪廓重點(diǎn)看三個(gè)數(shù)min是不是負(fù)數(shù)金額類字段出現(xiàn)負(fù)數(shù)通常意味著退款混進(jìn)來了、max是不是比75%分位大出好幾個(gè)數(shù)量級(jí)、mean和50%分位的差距有多大。均值遠(yuǎn)大于中位數(shù)說明右偏嚴(yán)重后面選檢測(cè)方法時(shí)就不能用基于正態(tài)假設(shè)的那套。value_counts的頭部和尾部是在找哨兵值。所謂哨兵值就是用特定數(shù)字表示特殊含義的約定-1表示未填寫、0表示未知、9999表示不適用。這類值在統(tǒng)計(jì)上看起來可能不離譜-1甚至不大但它會(huì)嚴(yán)重污染均值。我遇到過age字段大量填0的情況算出來平均年齡 26 歲實(shí)際主力用戶是 35 歲以上就是被這批 0 拉下去的。這一步的經(jīng)驗(yàn)是先看value_counts的尾部再看describe。因?yàn)樯诒低谖膊砍霈F(xiàn)得很突然比如正常金額都是幾十到幾千尾部突然出現(xiàn)一個(gè)-999一眼就能看出來。而describe只會(huì)告訴你最小值是 -999不會(huì)告訴你這個(gè)值出現(xiàn)了 800 次。1.2 IQR 的上下界怎么算什么時(shí)候它會(huì)騙你IQR 法是箱線圖的數(shù)學(xué)基礎(chǔ)計(jì)算很直接q1 df[amount].quantile(0.25) q3 df[amount].quantile(0.75) iqr q3 - q1 lower q1 - 1.5 * iqr upper q3 1.5 * iqr mask_normal df[amount].between(lower, upper) print(f下界 {lower:.2f} 上界 {upper:.2f} 異常占比 {(~mask_normal).mean():.2%})1.5這個(gè)系數(shù)不是拍腦袋的在正態(tài)分布下它對(duì)應(yīng)的區(qū)間大約覆蓋 99.3% 的數(shù)據(jù)所以正常數(shù)據(jù)被判為異常的比例應(yīng)該在 1% 以內(nèi)。這個(gè)數(shù)字很重要——如果你用 IQR 算出來的異常比例是 15%那不是數(shù)據(jù)有問題是方法用錯(cuò)了說明數(shù)據(jù)分布嚴(yán)重偏離正態(tài)或者 Q1、Q3 本身就被污染了。IQR 最容易騙人的場(chǎng)景是右偏嚴(yán)重的數(shù)據(jù)比如訂單金額、用戶消費(fèi)額、頁(yè)面停留時(shí)長(zhǎng)。這類數(shù)據(jù) Q1 和 Q3 都擠在左側(cè)IQR 很小算出來的上界就會(huì)很低把大量正常的大額訂單判成異常。我實(shí)測(cè)過一份客單價(jià)數(shù)據(jù)Q1 是 38Q3 是 96上界算出來只有 183但實(shí)際上千的單子占了 8%這些全是真實(shí)的大客戶訂單。通用的補(bǔ)救辦法是先做對(duì)數(shù)變換再算 IQR或者直接用分位數(shù)縮尾比如把上下 1% 的值截?cái)嗟?1% 和 99% 分位的值上后者對(duì)業(yè)務(wù)解釋更友好因?yàn)樗桓淖償?shù)據(jù)的單調(diào)性lo, hi df[amount].quantile([0.01, 0.99]) df[amount_winsor] df[amount].clip(lowerlo, upperhi)1.3 刪除、縮尾、標(biāo)記、分箱四種處置各自適用什么場(chǎng)景檢測(cè)出來之后怎么處理這是最見功力的地方。我整理了一張對(duì)照表基本覆蓋了日常遇到的場(chǎng)景處置方式適用場(chǎng)景風(fēng)險(xiǎn)點(diǎn)直接刪除確認(rèn)為錯(cuò)誤值且占比低于 1%占比高時(shí)會(huì)造成樣本偏差縮尾clip極端值真實(shí)存在但要算均值類指標(biāo)會(huì)壓縮真實(shí)差異需在報(bào)告里注明打標(biāo)記不刪極端值本身是分析對(duì)象如大客戶識(shí)別下游所有計(jì)算都要帶上標(biāo)記過濾分箱處理用于建模特征或做分布對(duì)比分箱邊界選擇主觀性強(qiáng)單獨(dú)分組結(jié)構(gòu)性偏移如某渠道口徑不同需要額外解釋容易讓報(bào)表難讀刪除這條我想多說一句。很多教程寫刪除 3σ 之外的記錄但從來沒說刪完之后必須重新檢查分布。原因很簡(jiǎn)單刪掉尾部會(huì)改變均值、方差、分位數(shù)如果下游還有別的過濾條件兩次過濾疊加可能把某個(gè)分組刪空。我的習(xí)慣是刪除前后各跑一次groupby.size()確認(rèn)每個(gè)分組的剩余量都還夠做結(jié)論經(jīng)驗(yàn)閾值是單組不低于 30 條不夠就別刪改成標(biāo)記。還有一個(gè)更隱蔽的坑刪除操作會(huì)破壞索引連續(xù)性。如果后續(xù)用位置索引iloc或者把索引當(dāng)成 ID 用刪完就容易錯(cuò)位。所以刪除之后一律加.reset_index(dropTrue)或者干脆養(yǎng)成習(xí)慣任何過濾之后都重置一次。2. 檢測(cè)手段的選型從 MAD 到孤立森林每種方法的失效條件是什么搞清楚異常值的分類之后接下來的問題是用什么方法找出來。這里有個(gè)很普遍的誤區(qū)方法越復(fù)雜越好。實(shí)際上孤立森林、LOF 這些算法在業(yè)務(wù)數(shù)據(jù)上的表現(xiàn)經(jīng)常不如一個(gè)老老實(shí)實(shí)的分位數(shù)閾值原因是它們對(duì)參數(shù)和數(shù)據(jù)尺度非常敏感而業(yè)務(wù)數(shù)據(jù)往往是臟的、混合分布的、量綱不統(tǒng)一的。我的選型邏輯是按數(shù)據(jù)形態(tài)走單變量近似對(duì)稱的用 Z-score單變量偏態(tài)的用 MAD多變量相關(guān)的用馬氏距離或孤立森林時(shí)間序列用滾動(dòng)統(tǒng)計(jì)量。下面逐個(gè)說清楚它們的前提和失效邊界。2.1 Z-score 的前提是近似正態(tài)偏態(tài)數(shù)據(jù)上它會(huì)誤傷Z-score 就是標(biāo)準(zhǔn)分(x - mean) / std閾值一般取 3z (df[amount] - df[amount].mean()) / df[amount].std() outliers df[z.abs() 3]寫法簡(jiǎn)單到?jīng)]什么可說問題在于它的兩個(gè)隱含假設(shè)均值能代表中心標(biāo)準(zhǔn)差能代表離散程度。這兩個(gè)假設(shè)只有在分布近似對(duì)稱時(shí)才成立。右偏數(shù)據(jù)里尾部的大值會(huì)把均值往上拉同時(shí)把標(biāo)準(zhǔn)差撐大結(jié)果是真正的異常反而算不出高分。這個(gè)現(xiàn)象叫掩蔽效應(yīng)是 Z-score 在業(yè)務(wù)數(shù)據(jù)上最致命的問題。還有一個(gè)技術(shù)細(xì)節(jié)容易被忽略std()默認(rèn)是樣本標(biāo)準(zhǔn)差ddof1如果跟別的系統(tǒng)比對(duì)結(jié)果時(shí)對(duì)方用的是總體標(biāo)準(zhǔn)差閾值會(huì)有一點(diǎn)差異。數(shù)據(jù)量大的時(shí)候影響可以忽略數(shù)據(jù)量小的時(shí)候比如幾百條值得注意。2.2 修正 Z-score 用中位數(shù)和 MAD抗噪但要注意 MAD 為 0修正 Z-score 把均值和標(biāo)準(zhǔn)差換成中位數(shù)和絕對(duì)中位差MAD這兩個(gè)統(tǒng)計(jì)量的崩潰點(diǎn)高得多少量極端值影響不了它們med df[amount].median() mad (df[amount] - med).abs().median() modified_z 0.6745 * (df[amount] - med) / mad outliers df[modified_z.abs() 3.5]0.6745這個(gè)常數(shù)是為了讓 MAD 在正態(tài)分布下和標(biāo)準(zhǔn)差可比等價(jià)于1 / 1.4826。閾值3.5是文獻(xiàn)里通用的經(jīng)驗(yàn)值對(duì)應(yīng)正態(tài)分布下大約 0.02% 的比例。這個(gè)方法有一個(gè)必須處理的邊界情況MAD 等于 0。當(dāng)超過一半的數(shù)據(jù)取值完全相同時(shí)就會(huì)發(fā)生典型場(chǎng)景是大量用戶的下單次數(shù)都是 1此時(shí)(x - med)對(duì)大多數(shù)記錄是 0MAD 就是 0除零之后全是inf或nan。處理方式是加一個(gè)極小值保護(hù)或者在這種場(chǎng)景下?lián)Q成基于計(jì)數(shù)的異常定義mad max(mad, 1e-9)我個(gè)人的經(jīng)驗(yàn)是對(duì)于次數(shù)型字段下單次數(shù)、登錄次數(shù)、點(diǎn)擊次數(shù)MAD 和 IQR 都不太好使因?yàn)榉植际请x散且高度集中的。這時(shí)候更靠譜的做法是直接用業(yè)務(wù)規(guī)則比如下單次數(shù)大于 50 次且 7 天內(nèi)完成這類組合條件。2.3 多變量異常馬氏距離和孤立森林的落地寫法單變量檢測(cè)看不到組合起來才異常的記錄。比如一個(gè)用戶年齡 25 歲、年消費(fèi) 80 萬這兩個(gè)值單獨(dú)看都不算極端但放在一起就非常可疑。這類問題需要多變量方法。馬氏距離考慮變量間的相關(guān)性要求數(shù)據(jù)近似多元正態(tài)而且樣本量要大于特征數(shù)否則協(xié)方差矩陣不可逆from scipy.spatial.distance import mahalanobis cols [age, amount, order_cnt] X df[cols].dropna().to_numpy() mu X.mean(axis0) cov_inv np.linalg.pinv(np.cov(X, rowvarFalse)) d np.array([mahalanobis(row, mu, cov_inv) for row in X]) threshold np.quantile(d, 0.99)注意這里用了pinv而不是inv因?yàn)樘卣髦g高度相關(guān)時(shí)協(xié)方差矩陣奇異inv會(huì)直接報(bào)錯(cuò)。另外mahalanobis是逐行調(diào)用的幾百萬行會(huì)非常慢實(shí)際項(xiàng)目里建議用矩陣運(yùn)算重寫d np.sqrt(np.einsum(ij,jk,ik-i, X - mu, cov_inv, X - mu))。孤立森林不依賴分布假設(shè)思路是隨機(jī)切分空間異常點(diǎn)因?yàn)橄∈杷愿菀妆还铝⒊鰜砺窂礁?。落地寫法from sklearn.ensemble import IsolationForest model IsolationForest( n_estimators200, contamination0.01, max_samplesauto, random_state42, n_jobs-1, ) model.fit(df[cols].fillna(0)) df[if_flag] model.predict(df[cols].fillna(0)) # -1 為異常 df[if_score] model.score_samples(df[cols].fillna(0))contamination是最關(guān)鍵的參數(shù)它直接決定判定比例設(shè)成 0.01 就意味著一定有 1% 的記錄被判為異常不管數(shù)據(jù)里到底有沒有這么多。這是一個(gè)很強(qiáng)的先驗(yàn)假設(shè)所以我一般不用predict的硬標(biāo)簽而是用score_samples拿連續(xù)分?jǐn)?shù)再結(jié)合業(yè)務(wù)規(guī)則人工圈定閾值。這樣既能利用算法的排序能力又不會(huì)因?yàn)閰?shù)設(shè)置錯(cuò)誤而誤刪大量正常數(shù)據(jù)。2.4 時(shí)間序列上的異常滾動(dòng)統(tǒng)計(jì)量比全局閾值靠譜時(shí)間序列的異常判定不能用全局閾值因?yàn)闃I(yè)務(wù)本身有周期性和趨勢(shì)。春節(jié)期間的訂單量比平時(shí)高五倍那是正常的但某個(gè)工作日的訂單量突然掉了一半那才是異常。常用做法是滾動(dòng)中位數(shù)加滾動(dòng) MAD用局部統(tǒng)計(jì)量代替全局統(tǒng)計(jì)量df df.sort_values(dt).reset_index(dropTrue) roll_med df[amount].rolling(window7, min_periods3).median() roll_mad (df[amount] - roll_med).abs().rolling(window7, min_periods3).median() score 0.6745 * (df[amount] - roll_med) / roll_mad.replace(0, np.nan) df[ts_flag] score.abs() 3.5min_periods必須顯式設(shè)置否則前 6 行的結(jié)果全是NaN容易在后面被誤當(dāng)成正常值。窗口大小按業(yè)務(wù)周期定日數(shù)據(jù)用 7周數(shù)據(jù)用 4 到 8太小容易把正常波動(dòng)判成異常太大會(huì)讓異常點(diǎn)污染窗口內(nèi)的統(tǒng)計(jì)量導(dǎo)致檢測(cè)滯后。還有一個(gè)更實(shí)用的做法是同比環(huán)比結(jié)合即(今日 - 上周同日) / 上周同日超過某個(gè)比例就標(biāo)記。這個(gè)方法業(yè)務(wù)解釋性極強(qiáng)報(bào)表上可以直接展示較上周同日下降 62%比一堆統(tǒng)計(jì)量更容易讓人相信。3. sample 不只是隨機(jī)抽幾行抽樣參數(shù)、分層方案與代表性校驗(yàn)抽樣這件事在很多人心里就是數(shù)據(jù)太大跑不動(dòng)抽一萬行先看看。但抽樣的目的是讓樣本能代表總體一旦這個(gè)前提不成立后面所有的分析結(jié)論都是廢的。我見過最典型的翻車是拿df.sample(1000)抽出來的樣本去評(píng)估轉(zhuǎn)化率抽出來的結(jié)果比全量高了兩個(gè)百分點(diǎn)查到最后是因?yàn)樵紨?shù)據(jù)按時(shí)間排序隨機(jī)抽樣恰好抽到了一個(gè)促銷時(shí)段。3.1 n、frac、weights、replace 的實(shí)際含義sample的參數(shù)不多但每個(gè)都有實(shí)際影響df.sample(n1000, random_state42) # 固定條數(shù) df.sample(frac0.1, random_state42) # 固定比例 df.sample(n1000, replaceTrue, random_state42) # 有放回 df.sample(n1000, weightsweight_col, random_state42) # 加權(quán)random_state在需要復(fù)現(xiàn)的場(chǎng)景必須固定尤其是做 A/B 對(duì)比分析時(shí)兩次抽樣用了不同的種子結(jié)果差異可能完全來自抽樣本身而不是業(yè)務(wù)變化。replaceTrue只在一種情況下需要樣本量要超過總體或者要做 Bootstrap 估計(jì)。日常抽樣基本不用因?yàn)橹貜?fù)樣本會(huì)讓統(tǒng)計(jì)量的方差被低估。weights是加權(quán)抽樣適合做重要性抽樣或者過采樣。有個(gè)坑值得說weights可以傳列名也可以傳數(shù)組但如果傳入的 Series 索引和 DataFrame 索引不一致pandas 會(huì)按位置對(duì)齊而不是按索引結(jié)果可能完全錯(cuò)亂。穩(wěn)妥做法是直接傳.to_numpy()。frac和n不能同時(shí)指定這個(gè)大家都知道。但有個(gè)隱蔽問題frac大于 1 且沒設(shè)replaceTrue時(shí)會(huì)報(bào)錯(cuò)而frac1返回的是打亂后的全量數(shù)據(jù)不是原始順序很多人在這一步誤以為數(shù)據(jù)被改了。3.2 分層抽樣手寫循環(huán)比 groupby.apply 更省心分層抽樣保證每個(gè)分組在樣本里的比例和總體一致這是報(bào)表抽樣幾乎必做的事。常見寫法有兩種我更推薦手寫循環(huán)def stratified_sample(df, col, n_per_groupNone, fracNone, seed42): parts [] for key, g in df.groupby(col, observedTrue, sortFalse): if n_per_group is not None: k min(n_per_group, len(g)) parts.append(g.sample(nk, random_stateseed)) else: parts.append(g.sample(fracfrac, random_stateseed)) return pd.concat(parts, ignore_indexTrue) sample_df stratified_sample(df, channel, frac0.05)為什么不用groupby.apply(lambda x: x.sample(...))兩個(gè)原因。一是新版 pandas 對(duì)返回結(jié)果形狀不一致的apply會(huì)有棄用警告行為在版本間有變化維護(hù)成本高。二是apply會(huì)把每個(gè)分組當(dāng)獨(dú)立函數(shù)調(diào)用幾萬個(gè)分組的時(shí)候速度慢一個(gè)數(shù)量級(jí)。手寫循環(huán)雖然多幾行但行為完全可控出問題好排查。min(n_per_group, len(g))這個(gè)保護(hù)必須加。小分組的數(shù)據(jù)量小于要求抽樣量時(shí)sample(nk)會(huì)直接拋ValueError整個(gè)流程中斷。用min兜底配合后面的一致性核對(duì)能馬上發(fā)現(xiàn)哪些分組樣本不足。observedTrue也不能省。如果你的分組字段是category類型默認(rèn)行為會(huì)把所有類別組合都列出來包括數(shù)據(jù)里根本不存在的組合白跑一堆空分組。新版 pandas 里這個(gè)默認(rèn)值已經(jīng)改了但如果代碼要兼容老版本顯式寫上更保險(xiǎn)。3.3 樣本量怎么估以及抽完必須做的一致性核對(duì)樣本量不是拍腦袋定的。判斷比例類指標(biāo)比如轉(zhuǎn)化率時(shí)用這個(gè)公式n z2 × p × (1-p) / e2z是置信水平對(duì)應(yīng)的分位數(shù)95% 對(duì)應(yīng) 1.96p是預(yù)期比例不知道就取 0.5此時(shí)方差最大e是允許誤差。取p0.5、e0.03算出來 n 約等于 1067。如果總體本身不大還要做有限總體修正n_adj n / (1 (n - 1) / N)總體 5000 條時(shí)修正后的樣本量是 878比 1067 小了不少。這個(gè)修正很容易被忽略導(dǎo)致對(duì)小數(shù)據(jù)集做了不必要的過度抽樣。抽完之后必須做一致性核對(duì)這一步比抽樣本身更重要。我通常跑三件事分組占比對(duì)比、關(guān)鍵字段的分位數(shù)對(duì)比、空值率對(duì)比。total_ratio df[channel].value_counts(normalizeTrue) sample_ratio sample_df[channel].value_counts(normalizeTrue) compare pd.DataFrame({總體: total_ratio, 樣本: sample_ratio}) compare[偏差] (compare[樣本] - compare[總體]).round(4) print(compare.sort_values(偏差, keyabs, ascendingFalse))偏差超過 1 個(gè)百分點(diǎn)就要警惕。如果發(fā)現(xiàn)某個(gè)分組偏差明顯先檢查這個(gè)分組的總量是不是太小小于 100 條時(shí)抽樣波動(dòng)本身就大排除之后再考慮加大樣本量或者改成按權(quán)重抽樣。對(duì)連續(xù)型字段用quantile([0.1, 0.25, 0.5, 0.75, 0.9])對(duì)比總體和樣本兩列并排看。這一步能發(fā)現(xiàn)隨機(jī)抽樣抽偏了分布的情況比如整體樣本量夠了但高分位被系統(tǒng)性低估。3.4 分層抽樣的一個(gè)變體按業(yè)務(wù)重要性分配配額嚴(yán)格按比例分層有時(shí)候不實(shí)用。比如做渠道分析時(shí)主力渠道占 90% 的量長(zhǎng)尾渠道加起來只占 10% 但包含幾十個(gè)渠道按比例抽的話每個(gè)長(zhǎng)尾渠道只能分到幾條根本沒法單獨(dú)看。這時(shí)候用配額抽樣更合理主力渠道按比例抽長(zhǎng)尾渠道強(qiáng)制保底若干條。big stratified_sample(df[df[channel].isin([A, B])], channel, frac0.02) small stratified_sample(df[~df[channel].isin([A, B])], channel, n_per_group50) sample_df pd.concat([big, small], ignore_indexTrue)這樣做出來的樣本不能直接用來算整體均值因?yàn)樗?jīng)過了人為加權(quán)。但如果用途是看每個(gè)渠道的畫像那完全合理。關(guān)鍵在于樣本用途決定了抽樣方案而不是反過來。這一點(diǎn)我會(huì)在交付分析結(jié)果時(shí)明確寫出來避免下游拿著加權(quán)樣本去算全站 GMV。4. groupby 的執(zhí)行邏輯與 agg 寫法把聚合結(jié)果做成能直接進(jìn)報(bào)表的形狀聚合是三個(gè)環(huán)節(jié)里最常用的也是最容易產(chǎn)生結(jié)果對(duì)不上的環(huán)節(jié)。原因往往不在groupby本身而在于 NaN 的處理、索引的形狀、以及聚合函數(shù)的語義選擇——sum()對(duì)全 NaN 分組返回 0mean()對(duì)全 NaN 分組返回 NaN這兩個(gè)行為的差異能讓報(bào)表數(shù)字出現(xiàn)明顯偏差。4.1 groupby 到底做了什么為什么要關(guān)注 as_index 和 observedgroupby的執(zhí)行過程是拆分-應(yīng)用-合并按 key 把數(shù)據(jù)切成若干塊對(duì)每塊執(zhí)行聚合函數(shù)再把結(jié)果拼成新表。理解這一點(diǎn)很多行為的來源就清楚了。as_indexFalse決定了分組字段是留在索引上還是變成普通列。大多數(shù)接報(bào)表的場(chǎng)景都應(yīng)該設(shè)成False因?yàn)楹罄m(xù)要merge、要導(dǎo)出 Excel、要寫進(jìn)數(shù)據(jù)庫(kù)索引里的列很麻煩result df.groupby(channel, as_indexFalse).agg(gmv(amount, sum))dropna決定分組字段為 NaN 的記錄要不要參與。默認(rèn)是丟棄這在統(tǒng)計(jì)上合理但在業(yè)務(wù)上經(jīng)常出問題——空的分組字段往往代表未歸類直接丟掉會(huì)讓總數(shù)對(duì)不上。我一般會(huì)先把空值填成未知再分組這樣總量是守恒的。observedTrue前面提過主要影響 categorical 類型。還有一個(gè)相關(guān)的坑如果分組字段的 dtype 是object但實(shí)際取值只有少數(shù)幾個(gè)可以先轉(zhuǎn)成category分組速度能快好幾倍內(nèi)存也能省一半以上。4.2 命名聚合比傳字典更清晰也更好接下游聚合的寫法有好幾種從差到好排下來# 寫法一多函數(shù)聚合結(jié)果是 MultiIndex 列 df.groupby(channel).agg({amount: [sum, mean, count]}) # 寫法二傳字典只能給一列配一個(gè)函數(shù)或函數(shù)列表 df.groupby(channel).agg({amount: sum, order_id: nunique}) # 寫法三命名聚合推薦 summary df.groupby(channel, as_indexFalse).agg( gmv(amount, sum), order_cnt(order_id, nunique), avg_price(amount, mean), p90(amount, lambda x: x.quantile(0.9)), )寫法一的問題是多函數(shù)聚合出來是二級(jí)列名result[amount][sum]這種取法在導(dǎo)出、重命名、拼接時(shí)都很別扭得用flatten處理。寫法三直接給每個(gè)聚合結(jié)果命名列名是扁平的可以直接進(jìn)報(bào)表。用lambda算分位數(shù)很方便但性能很差——它是逐組調(diào)用 Python 函數(shù)幾萬個(gè)分組時(shí)能慢十倍以上。數(shù)據(jù)量大時(shí)改用functools.partial或者先算分位數(shù)列再聚合from functools import partial q90 partial(pd.Series.quantile, q0.9) summary df.groupby(channel, as_indexFalse).agg(p90(amount, q90))另外還有一個(gè)語義陷阱count和size的區(qū)別。count統(tǒng)計(jì)非空值數(shù)量size統(tǒng)計(jì)行數(shù)含空值。做訂單數(shù)統(tǒng)計(jì)時(shí)如果用錯(cuò)空值多的分組會(huì)少算。nunique默認(rèn)不統(tǒng)計(jì)空值這個(gè)行為一般符合預(yù)期但如果需要把空值也算一種取值得顯式dropnaFalse。4.3 transform 和 apply 的分工以及性能差距transform的作用是按組計(jì)算但結(jié)果保持原表形狀用來做組內(nèi)標(biāo)準(zhǔn)化、組內(nèi)占比、缺失值組內(nèi)填充特別方便df[channel_avg] df.groupby(channel)[amount].transform(mean) df[amount_ratio] df[amount] / df[channel_avg] df[rank_in_channel] df.groupby(channel)[amount].rank(ascendingFalse, methoddense)如果不要求保留原形狀只是想拿到每組一個(gè)值那就用agg它比transform快因?yàn)椴恍枰呀Y(jié)果廣播回每一行。apply最靈活可以返回任意形狀但也是三者里最慢的。它的價(jià)值在于邏輯復(fù)雜、沒法用內(nèi)置函數(shù)表達(dá)的場(chǎng)景比如組內(nèi)要做時(shí)間序列插值、要做排序后取第 N 行top3 df.groupby(channel, group_keysFalse).apply( lambda g: g.nlargest(3, amount), include_groupsFalse )新版 pandas 里apply作用在 DataFrame 上時(shí)分組列默認(rèn)會(huì)包含在數(shù)據(jù)里需要在函數(shù)里排除否則會(huì)報(bào)錯(cuò)或者產(chǎn)生重復(fù)列。加include_groupsFalse是比較穩(wěn)妥的寫法老版本沒有這個(gè)參數(shù)需要用g.drop(columns...)手動(dòng)剔除。4.4 pivot_table 和 crosstab 的適用邊界pivot_table本質(zhì)上是groupby加透視適合做二維交叉表。跟groupby的區(qū)別在于它能一次把行維度、列維度都鋪開適合直接給人看pivot pd.pivot_table( df, indexchannel, columnsmonth, valuesamount, aggfuncsum, fill_value0, marginsTrue, margins_name合計(jì) )fill_value0很重要否則交叉表里沒有數(shù)據(jù)的位置是NaN做后續(xù)計(jì)算時(shí)會(huì)傳播。marginsTrue會(huì)自動(dòng)加行列合計(jì)省去手工算總數(shù)的一步但要注意合計(jì)行在索引里叫All可以自定義跟數(shù)據(jù)行混在一起如果后面還要做運(yùn)算記得先剔除。crosstab適合算頻次分布比pivot_table寫起來簡(jiǎn)潔pd.crosstab(df[channel], df[status], normalizeindex, marginsFalse)normalizeindex按行歸一化輸出的就是每個(gè)渠道里各狀態(tài)的占比做轉(zhuǎn)化率分析很方便。normalizecolumns按列normalizeTrue按總數(shù)。這三個(gè)值容易搞混我的記法是歸一化的方向就是分母所在的方向。5. 三個(gè)環(huán)節(jié)串成一條流水線可復(fù)用函數(shù)與幾個(gè)高頻報(bào)錯(cuò)分開看每個(gè)環(huán)節(jié)都不難真到項(xiàng)目里麻煩出在三者交織的地方。異常值處理改變了分布抽樣就要重新校驗(yàn)抽樣讓部分分組數(shù)據(jù)變少聚合時(shí)就要處理小樣本分組聚合結(jié)果又要回到異常值判斷里做交叉驗(yàn)證。把這些串起來我的做法是把每一步寫成獨(dú)立函數(shù)中間產(chǎn)物落盤方便回溯。5.1 函數(shù)拆分與參數(shù)設(shè)計(jì)整條流水線拆成四個(gè)函數(shù)每個(gè)函數(shù)只做一件事參數(shù)顯式傳入不依賴全局變量def profile(df, cols): 輸出字段體檢表空值率、唯一值數(shù)、分位數(shù)、疑似哨兵值 rows [] for c in cols: s df[c] rows.append({ col: c, dtype: str(s.dtype), null_rate: round(s.isna().mean(), 4), nunique: s.nunique(), min: s.min() if pd.api.types.is_numeric_dtype(s) else None, p01: s.quantile(0.01) if pd.api.types.is_numeric_dtype(s) else None, p50: s.quantile(0.5) if pd.api.types.is_numeric_dtype(s) else None, p99: s.quantile(0.99) if pd.api.types.is_numeric_dtype(s) else None, max: s.max() if pd.api.types.is_numeric_dtype(s) else None, }) return pd.DataFrame(rows) def flag_outliers(df, col, methodmad, k3.5): 只打標(biāo)記不刪數(shù)據(jù) s df[col] if method mad: med s.median() mad max((s - med).abs().median(), 1e-9) score 0.6745 * (s - med) / mad return (score.abs() k).fillna(False) if method iqr: q1, q3 s.quantile([0.25, 0.75]) iqr q3 - q1 return ~s.between(q1 - 1.5 * iqr, q3 1.5 * iqr) raise ValueError(funknown method: {method}) def build_sample(df, group_col, frac0.05, min_n30, seed42): 分層抽樣小分組保底 min_n 條 parts [] for key, g in df.groupby(group_col, observedTrue, sortFalse): k max(min_n, int(round(len(g) * frac))) parts.append(g.sample(nmin(k, len(g)), random_stateseed)) return pd.concat(parts, ignore_indexTrue) def build_summary(df, group_col, value_col, id_col): return df.groupby(group_col, as_indexFalse).agg( cnt(id_col, nunique), total(value_col, sum), avg(value_col, mean), p50(value_col, median), )這樣拆的好處是每一步都能單獨(dú)驗(yàn)證。profile的輸出可以直接貼進(jìn)分析報(bào)告當(dāng)數(shù)據(jù)質(zhì)量說明flag_outliers加了_flag列而不刪數(shù)據(jù)出問題隨時(shí)能切換策略重跑。5.2 SettingWithCopyWarning 的根因和三種消除方式這個(gè)警告幾乎人人都見過很多人直接warnings.filterwarnings(ignore)了事但它是真實(shí)問題的信號(hào)。根因在于 pandas 無法確定你拿到的 DataFrame 是原始數(shù)據(jù)的視圖還是副本賦值操作可能改了原表也可能沒改行為不確定。最常見的觸發(fā)寫法是鏈?zhǔn)剿饕? 觸發(fā)警告 df[df[status] paid][discount] 0.9 # 正確寫法一先 copy sub df[df[status] paid].copy() sub[discount] 0.9 # 正確寫法二用 loc 一次定位 df.loc[df[status] paid, discount] 0.9寫法二最推薦一次完成定位和賦值不會(huì)產(chǎn)生中間對(duì)象。寫法的關(guān)鍵是copy()不能省很多人覺得加了copy()會(huì)多占內(nèi)存實(shí)際上 pandas 3.0 之后寫時(shí)復(fù)制是默認(rèn)行為copy()的開銷比想象中小得多而且能避免一堆難以排查的問題。還有一類更隱蔽的情況merge之后修改某一列時(shí)觸發(fā)這個(gè)警告。原因是merge結(jié)果的某些塊可能跟原始 DataFrame 共享內(nèi)存。處理方法一樣merge之后如果要做原地修改先.copy()。5.3 dtype 被悄悄改掉整數(shù)變浮點(diǎn)、空值被當(dāng)成 0這個(gè)坑比上一個(gè)大得多因?yàn)樗粓?bào)警告只給你一個(gè)錯(cuò)誤的數(shù)字。第一個(gè)典型場(chǎng)景原本是int64的列里出現(xiàn)空值pandas 會(huì)自動(dòng)把它轉(zhuǎn)成float64??雌饋碇皇穷愋妥兞藢?shí)際影響是id列變成浮點(diǎn)之后作為字典鍵或者跟字符串拼接會(huì)出現(xiàn)123.0這種結(jié)果去重、關(guān)聯(lián)、導(dǎo)出全都會(huì)出問題。解法是用可空整型df[qty] df[qty].astype(Int64) # 注意大寫 IInt64大寫是 pandas 擴(kuò)展類型支持pd.NAint64小寫是 numpy 類型不支持。這個(gè)大小寫區(qū)別坑過很多人。同理還有string和object、boolean和bool。第二個(gè)場(chǎng)景sum()把 NaN 當(dāng) 0 加。這是sum的設(shè)計(jì)行為skipnaTrue是默認(rèn)值。影響在于分母——如果算客單價(jià)時(shí)用amount_sum / order_count而amount有一批是 NaN那分子少算、分母照算客單價(jià)就被系統(tǒng)性低估。正確做法是先把空值處理掉再算或者在聚合里顯式指定df.groupby(channel).agg( gmv(amount, lambda x: x.sum(min_count1)), # 全空時(shí)返回 NaN 而不是 0 cnt(order_id, nunique), )min_count1的意思是至少要有 1 個(gè)非空值才計(jì)算結(jié)果全空分組返回 NaN這樣在報(bào)表里一眼就能看出哪些分組數(shù)據(jù)缺失而不是被 0 悄悄糊過去。第三個(gè)場(chǎng)景groupby之后 dtype 發(fā)生變化。分類字段轉(zhuǎn)成索引之后類型可能變尤其是用了category的地方。做完聚合之后加一句print(result.dtypes)檢查一下養(yǎng)成習(xí)慣能省掉大量為什么數(shù)字不對(duì)的排查時(shí)間。5.4 內(nèi)存與速度category 和避免 apply 的實(shí)測(cè)差距數(shù)據(jù)量上到千萬行之后性能就變成必須考慮的事。我做過一輪對(duì)比同一份 800 萬行的訂單數(shù)據(jù)幾個(gè)改動(dòng)帶來的差異很明顯改動(dòng)大致效果說明分組字段轉(zhuǎn)category分組耗時(shí)下降 40%–60%取值基數(shù)低時(shí)收益最大用agg命名聚合替代apply聚合耗時(shí)下降一個(gè)數(shù)量級(jí)apply是逐組 Python 調(diào)用數(shù)值列降精度float32內(nèi)存占用減少約一半精度要求不高的場(chǎng)景可用讀數(shù)據(jù)時(shí)指定dtype和usecols讀取階段內(nèi)存減少 60% 以上從源頭控制最有效用pd.NA替代np.nan語義更清晰內(nèi)存略增整數(shù)列可空時(shí)必需category的收益來自兩點(diǎn)一是值實(shí)際只存一份每個(gè)位置存的是整數(shù)編碼內(nèi)存從每行一個(gè)字符串變成每行一個(gè)小整數(shù)二是分組時(shí)可以直接按整數(shù)編碼做哈希比字符串比較快得多。轉(zhuǎn)的時(shí)候要注意如果某列取值基數(shù)接近行數(shù)比如用戶 ID轉(zhuǎn)成 category 反而更慢更占內(nèi)存轉(zhuǎn)之前先看nunique() / len(df)這個(gè)比值低于 0.1 再考慮。讀取階段優(yōu)化是最劃算的因?yàn)槭〉氖侨鞒痰膬?nèi)存峰值dtype_map { order_id: string, channel: category, qty: Int32, amount: float32, } df pd.read_csv(orders.csv, usecolslist(dtype_map), dtypedtype_map)usecols只讀需要的列這一步經(jīng)常能省掉一半以上的內(nèi)存和時(shí)間。很多人的習(xí)慣是先全量讀進(jìn)來再刪列實(shí)際上源頭就過濾掉更高效。float32要注意精度金額類字段如果對(duì)小數(shù)位有嚴(yán)格要求比如到分用float32可能產(chǎn)生累積誤差建議保留float64或者干脆用整數(shù)存分。最后提一個(gè)容易被忽略的性能陷阱在groupby之后鏈?zhǔn)秸{(diào)用多次聚合不如一次agg里全寫完。每次鏈?zhǔn)秸{(diào)用都會(huì)重新觸發(fā)一次分組計(jì)算雖然 pandas 內(nèi)部有一些優(yōu)化但顯式一次寫完更穩(wěn)定。我在幾個(gè)項(xiàng)目里對(duì)比過把三次獨(dú)立的groupby().sum()、groupby().mean()、groupby().count()合并成一個(gè)agg耗時(shí)大約能降到三分之一。還有一個(gè)我個(gè)人的小習(xí)慣所有聚合結(jié)果在導(dǎo)出之前先跑一次總量守衡校驗(yàn)——用原始數(shù)據(jù)的amount.sum()和聚合結(jié)果的total.sum()對(duì)比兩者必須完全相等浮點(diǎn)用np.isclose。這一步能抓出絕大多數(shù)過濾條件寫錯(cuò)、空值被丟棄、分組字段意外為 NaN 的問題。寫完一條流水線加上這個(gè)校驗(yàn)交付時(shí)心里就有底了。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
午夜久久无码1000合集| 女生自91网站| 无遮挡男女激烈动态图| 熟女久久久| 国产真实子伦对白| 9.1小视频| 大吊色| 最新国产亚洲精品精品国产亚洲综合 | 国产成人综合网| 九九热最新| 日韩国产乱子伦App| 视频一区二区免费在线| 日韩 女同 综合| 情色五月天久久久| 欧美另类自拍 | 麻豆这里只有精品| 国模精品娜娜一二三区| 久草福利在线资源站| 久操91视频| 老司机午夜精品福利视频一区二区 | 亚洲国产午夜真人一级片中文字幕精品黄网站 | 嗯啊抽插大香蕉网页| 麻豆熟妇乱妇熟色A片在线看| 欧洲免费一区二| 久久男人的天堂国产| 岛国色情视频在线观看| 自拍偷拍草一草| 青草一区二区| 超碰免费97| 老鸭窝成人免费毛片视频| 色综合久久夜色精品国产天堂| 按摩中文字幕| 欧美 牲| 67194无码不卡| 亚洲熟妇乱女区二区三区| 午夜男人一级A片7777| 国产激情在线观看| 国产农村一一级特黄毛片| 日本污ww视频网站| 六月色婷婷| 蜜臀av一区二区三区免费观看| 久久香蕉国产线看观看猫咪av| 中文字幕亚洲永久精品| 亚洲欧美日韩精品久久久一区二区| 91在线视频观看国产| 日韩亚洲精品一区二区| 五月丁香综合| 天天做天天爱天天爽AV| 欧美第二页午夜| 天天看天天综合成人网| 欧美色图 人妻| 性九九九九九九| 94色色电影网| 国产一进一出视频网站| 激情综合五月婷婷| 97视频在线视频| 日韩91网| 伊人久久大香线蕉无码| 久久亚洲影院一区二区| 国产二区视频在线观看电影| 在线一道啪| 亚洲无套久久嗯嗯| 久久久青草青青国产亚洲免观精品高清完整版_97久久综合区小说区图片区,国精品 | 97久操| 国偷自 一区| 日本一区二区电影网站| www.色综合| 欧美成人一区二区三区在线播放| 日韩色欲久久一二三四区| Sekablack无码一区| 91天天综合网| 91综合天天看| 97超碰色屌| 午夜精品久久久久久久99| 18禁免费视频| 精品久久久久成人码免| 99久久com免费视频′| 操穴国产| 99re这里只有精品9| 欧美成不卡网| 国产18精品亚洲精品| 亚州综合网| 啊啊啊啊啊啊啊啊啊在线观看| 亚洲夜夜欢无码一区二区 | 9/A片| 日韩有码 一区二区三区| 精品一区99999| 啪啪91| 婷婷五月天激情网| 欧美性爱日韩高清| 日本媚薬中文字幕在线| 91爱看| 久久一留热品黄| 欧美三级中文字幕hd| 女沟厕偷窥piss小便| 天美传媒av在线| 97色伦欧美| 国产精品久久久久久 百度| 欧美激情久操网| 亚洲深夜福利| 99超碰网| 久久噜噜噜精品国产亚洲综合| 久久色一区| 激情深爱五月天| 欧美性爱www免费版| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师黑人潮喷一 | 日本天堂在线播放| 欧美狠狠操| 九九av| 国产精品无码在线| 中文字幕AV乱伦| 国产极品馒头逼| 一区二区三区四区五区久久久久久| 成人情色一区二区| 精品婷婷| 97摸视频| 三级片网站在线播放| 日韩极品无码B| 欧美亚洲手机在线| 国产91丝袜在线播放蜜月| 亚洲天堂另类美腿| 欧美图片偷拍| 热久久精品| 欧美人妻久久精品二区三区| 91亚州欧美| 久久αⅴ| 超碰人妻97| 亚洲人精品久久久| 黑人在线91| 亚洲男人天堂2017| 国产传媒日韩| 六月婷婷一区二区三区| 久久性爱城| 欧美日韩操逼动图| 精品国产乱码久久久久A| 婷婷久草| 五月综合色| 美女刺激久久国产欧美| 欧美日韩色图片| 97午夜剧场日韩| 欧美亚洲综合色| WWW4虎| 日本一区二区三区欧美日韩中文字幕| 久久精品美女一区| av天堂影视中文在字幕在线中文| 狠狠久久亚洲欧美专区| 国产夜夜操| 人妻 欧美 中文| 中文字幕第23区| 精品亚洲俞拍视频一区| 欧美夜夜骑视频| 色综合久久夜色精品国产天堂| 亚洲综合九| 日日日大屁股骚女人精品| 香蕉大久久久| 猛猛干| 欧美美女视频| 天天操夜夜操狠很操| 一级@啪啪视频| 懂色AV蜜臀无码精品APP | 婷婷色影院| 激情五月婷婷| 超硑97精品| 日日日色色色色色| 蜜臀中文字幕| 高清无码在线播放网站| 国产成人无码高清| 欧日韩不卡视.频| 亚洲国产精品无码AV久久久| 国产网红精品| 午夜精品一区二区三区三上悠亚| 操b网站亚洲无码| 综合视频91| 午夜在线播放| 欧美成年人性爱视频免费观看| 精品一级毛片在线观看| 东京热男人的天堂精品| 亚洲图片 91| 超碰98综合网| 一区二区三区美女超清| 午夜电影在线观看无码专区| 69精品少妇一区二区三区蜜桃| 欧洲免费一区二| 亚洲一本色码中文字幕| 久久99久久99精品天美传媒棢·纸:. | 欧美成人综合| 亚洲精品熟妇1区2区3区。| 熟妇综合一区二区三区| 九九成人| av72网| 婷婷五月天激情四射| AV麻豆免费一区| 日韩一级免费性爱| 青女在线| 亚洲精品国产精品成人| 四虎影院成年人片| 亚洲视频小说| 91超碰在线| 蜜乳性色无码专日粉嫩骚逼AV| 久久久久久性爱片| 久久久亚洲熟妇资源| 国产乱伦性爱区| 日韩一级二级| 亚洲丝袜少妇在线| 日本欧美亚洲高清在线看| 亚洲成人一二三区| 花花AV导航| 国产精品自在线发布| 99999精品视频| 加勒比色99999| 高潮毛片无遮挡高清免费| 亚州国产精品乱| 加勒比伊人综合| 麻豆国产精品午夜视频| 亚洲欧美中日韩| 97操碰| 欧美精品日韩久久久九| 久久的网站啊啊啊啊啊| 欧美成人一级麻豆| 欧美一二三区四五区| 美女上床网站| 操逼啊啊啊91| 使劲用力艹少妇视频一区二区| 高清国产精品福利网站| 亚洲综合中文字幕有码| 色哟哟1区2区| 免费超碰97在线观看| 夜夜高潮夜夜爽高清视频一 | 超碰78| www久久久| 青草伊人久久| 婷婷AV一区二区三区| 涩涩久久精品| 911粉嫩人妻| 欧美日韩美女精品久草一区二区三区| 亚洲 日韩 丝袜 熟女 变态| 伊人 俄罗斯 a v| WWW操逼| 欧美色偷拍 | 中文字幕在线免费观看2| 久久精品国产精品亚洲艾通辽熟妇 | 国产树林里野战在线看| 国产传媒1234区| 97人人夜| 欧美亚洲激情小说| 欧美性91| 亚洲性综合9| 清纯唯美激情| 天美传媒国产原创中文字幕亚洲欧美另类| 97超碰中文在线| 日本三级黄页| 日语五十路和六十路亚洲国产精品| 欧美另类色图片| 亚洲天堂2020| 日本不卡三级网在线播放| 国产精品九九九| 中文字幕91综合| 日韩激情电影中文字幕| 欧美影音在线| 五月天婷婷小说| 九九九免费视频| 美女高潮视频91| 国产日韩在线播放av| 欧美亚洲se91| 96久久精品一二三区色欲| 超碰色美女| 26uuu欧美| 人妻精品一区二区三区| 99少妇精品视频| 91亚洲人| 黄色高清久久无码依人| 一区二区三区免费岛国片| 亚洲男人的天堂V| 一级性爱视频免费在线| AV久日| 温婉少妇玩3p| 青青在线视频日韩欧美| AV老汉| 亚洲精品久久久久久久久豆丁网| 综合色欧美| 久久精品国产72国产精品福利| 亚洲国产97在线精品一区| 日韩啪啪啪啪啪| 国语对白露脸XXXXXX| 97频视在线| 亚洲夜夜欢无码一区二区 | 日韩免费簧片| 大屁股熟女一区二区三区| 99热精品在线在线| 男女激烈网站最新| 欧美亚洲情色| 亚洲欧美天| 台湾佬中文娱乐自偷自拍| 久久精品国产亚洲AV嘿嘿| 亚洲男人在线观看天堂| 97精彩视频网站| 国产综合在线视频网站| 欧美综合色图网| 国产剧情一区在线观看| 亚洲最大AV网| 97久久超碰国产精品| 一区=区三区视频| 狠狠中文字幕| 黄色成年| 91骚妇| 亚洲偷拍自拍在线视频| 91精品微拍福利| 大茄子熟女AV导航| 91伊人久久在线| 嗯啊啊啊轻点视频 | 日本97久久久精品| 久色网| 久热香蕉精品在线视频| 无码人妻一区二区三区色欲aⅴ | 91狠狠综合网| 日产精品久久久一区二区| 99九九久久| 日韩性爱免费视频在线网站| 欧美性爱第一页久久| 欧美另类丝袜熟女| 国产一区二区在线播放,久久亚洲精品中文字幕第一区,亚洲精品在线中文字幕视频 | 国产色图乱伦| 0755午夜福利视频| 亚洲人码13| 妇女视频网站| 久久久久骚| 色青青久久影视| 国产精品麻豆免费视频| 一级性爱视频免费观看| 啊啊啊啊操死我| 新怡红院| 天天影视综合色| 中文一区二区| 欧美日韩美女精品久草一区二区三区| 欧美一二在线| 亚洲色图国产另类| 97精品国产精品免费观看| 嗯嗯嗯啊啊啊操的我好爽| 一本一道人妻久久一区二区三区| 大香蕉综合在线| 久久激情亚洲精品无码?V| 中文字幕第9页萱萱影音先锋| 亚洲男人电影天堂| 欧美性夜| 九九热九九| 麻豆成人AV| 东京热,男人的天堂| 精品无码产区一区二| 国产亚洲色婷婷99精品91| 久久精品一区| 人人澡人人弄| 嗯嗯嗯啊啊啊干死我吧| 青青草玖玖爱| 无码九九| 亚洲精品国产拍免费91在线| 91亚洲最新在线| 3P丝袜熟女 色综合| 啪啪啪综合| 欧美日韩中文字幕不卡| 99999这里都精品| 国产精彩女在线观看视频| 99re6在线视频精品免费完整版安卓版| 国产第二页| 校园春色欧美| 91女日逼| 97天天操| 日韩一级性爱无码| 国产肏逼网站| 色哟哟AⅤ| 青椒国产97在线熟女| 久久久久久久亚洲Av无码| 无码99| 亚洲 无码 偷拍| 少妇精品久久| 沈阳熟女高潮对白视频| 黄色AAAAA欧美| 福利视频一区二区微拍| 亚洲天堂热| 精品久久久久久亚洲| 欧美日韩夜夜| 韩日巨乳美女免费视频在线观看| 国产精品另类一区大香蕉| 98超碰日本| 日韩97精| 加勒比大香蕉视频在线| 熟妇综合一区二区三区| 综合色91| 精品人妻1区| 亚洲国产精品无码AV在线| 人妻少妇被猛烈进入中| 亚洲精品日韩国产欧美| 亚洲中文制服诱惑| 蜜臀久久在线视频| 老熟乱一区二区三区四区| 亚州综合色| 色综合V| 曰韩成人免费视频| 久久久久久夜夜夜夜夜| 中文字幕在线第二页| 91丝袜| www.av在线视频| 婷婷色播婷婷| 伊人一区二区三区| 久久一区二区蜜桃| 久久亚洲AV无码专区首页| 亚洲欧美国产日本一区二区三区| 青青青青草av在线观看| 久久三区四区| 操日韩第| 日本91白丝| 2019午夜福利视频| 日韩AV无码网站| 欧美线天码中字| 农村少妇久久久久久久| 操逼天美3区| 色哟哟的毛片| 超碰97综合网| 国产精品毛片?v一区二区三区 | 一区操逼日比视频| 天综合网| 女人天堂网| 丁香九月 婷婷| 爱射综合| 一起草视频在线| 日韩欧美亚洲一区二区三区影院| 91网18| 97干在线视频| 成人午夜无码视频| 超碰视97中文| 韩三级a视频在线观看| av天堂5| 亚洲少妇在线影音| 老鸭窝在线视频播放| 亚洲春色一区二区三区| 婷婷久草一区二区三区| nuu12国产麻豆精品| 18禁在线视频| 精品久久久中文字幕不| 97人人干人人操| 日本成人免费一区二区三区| 人人色97| 91欧美经典| 日本午夜久久电影| 久久久成人免费av电影| 国产av强奸美女| 手机不卡视频不卡在线一二三区| 国产黄片在线免费观看| 极品极品色影院| 亚洲综合色男人网| 今日头条成人一区二区三区四虎精品| 亚洲操操操无码| 亚洲成人贴图| 日日噜噜夜夜狠狠视频无| 黄色网址在线免费观看| 成人精品一区二区91毛片不卡| 欧美精品23| 国产超碰在线一区| 一区二区三区不卡视频| 亚洲超碰综合网| 97天天操天天干| 久久二| 男人的天堂2019| 五月综合久久| 亚洲做性| 欧美一区二区亚洲天堂| 啊啊啊啊好疼视频| 在线观看日韩av不卡| 国产精品久久久久久久久久久久久久久久| 欧美大片天天看| nuu12国产麻豆精品| 天久久久噜噜噜久久国产精品爽爽| 91亚洲综合在线| 人人插人人摸人人| 九九九久千久久激情蜜桃在线看| 亚州黄站| 另类图片五月| 亚洲欧洲成人在线电影| 亚洲色图超碰在线| 探花视频免费观看国产专区| 熟妇最新先锋一二三区| 天天懆天天日| 狠操91,com| 唐山老熟妇露脸啪啪叫| 一卡二卡在线播放| 密桃99999| 激情五月天中文字幕色| 99天天超碰| 韩国成人精品久久久免费看| 久久精品无码熟妇一区二区三区视频导航 | 天天综合站| 久久久久国产精品喷潮免费观看臀 | 欧洲一区二区三区四区在线观看| 亚洲高清男人天堂| 一线黄色免费性爱片| 看看日B真人视频| 六月丁丁香| 9久久久久久| 久久一区无码| 欧美色性爱| 在线播放欧洲免费av| 凌辱美少妇久久aV| 亚洲美腿丝袜香蕉影视欧美成人| 日韩激情电影中文字幕| 日本天天操| 2017大香蕉| 亚洲AV性爱电影| 牛牛aV| 91制服丝袜| 骚乳在线| 久久国内| 2020久久免费视频| 九九久久一区二区伦理| 九九九不卡| 成人午夜小视频手机在线看| 四虎在线观看网站| 美女尤物人人操| 婷婷久草| 成人热久久精品| 丁香五月综合| 日韩激情电影中文字幕| 综精品久久久aaaa| 日本一二区免费| 日本一区二区三区午夜观看| 国产精品一区av在线| 另类专区加勒比| 欧美日韩高潮喷水91| 噜噜噜在线视频| 欧美日韩久久精品爱爱| 精彩视频日韩| 国产 日韩 另类 视频一区爱| 91人人| 日本一天色道久久久精品视频| 超碰成人免费| 操日韩第| 夜夜福利| 色婷婷六月| 91精品国产91久久青草| 自拍欧美| 国产熟女乱论| 国产久久久| 按摩中文字幕| 口爆吞精在线观看| 3PAV乱伦视频| 天天欧美| 国产蜜臀在线| 天天内射| 欧美老妇女内射网址| 人妻久久久久久| 色欲Av人妻精品一区二| 92久久| 色一区二区三区综合| 免费成人在线熟妇网| 亚洲s在线观看| 婷婷亚洲中文字幕在线| 五月丁香综合啪啪| 国产av美女被艹的乱叫| 欧美日韩操逼动图| 午夜AV人气不卡| 黄片免费日韩| 亚洲欧美综合| 丁香九月婷婷| 亚洲精品久久久久久久蜜桃臀| 老熟女综合网| 无码人妻精品一区二区三区九九| 精品人妻美妇91job| 日本一级婬片试看三分钟| 欧美成人免费在线观看| 极品另类| 一区二区三区视频| 超碰97护士| 600国产精品视频| 欧姜老司机| 色香av| 精品999一区二区| 美女91AV| 91亚洲网| 精品久久久av无码免费| 91精品国产91久久福利| 高清无码久操视频| 国产v片在线免费观看| 超碰精品国产无码| 国产丝袜欧美在线视频| 狠狠爱综合网| a亚洲欧美色欲| 国内毛片欧美香蕉精品| 亚洲乱妇p22| 屁股久久久久久久| 午夜成人爽爽爽爽A片李冰冰| 婷婷丁香激情| 日韩欧美福利视频看看| 美女视频尤物网在线看| 99在线无码精品秘 入口黑人| 中文字幕交换人妻| 91黑人无码激情在线| 91一起操| 又黑又大又粗 | 狠狠色噜噜狠狠狠狠2018| 综合久久99| 91精品国产91久久青草| 岛国片在线视频网站| 亚洲 欧美 偷拍 唯美| 伊人久久大香线蕉无码| 国产一区二区欧美日本| 狠狠综合| 久草色悠悠在线视频| 亚洲精品 欧美精品| 97中文综合| 国产精品亚洲一区二区三区四区| 婷婷五月天成人网| 男人天堂.AB| 97这里都是精品| 成人五月天色网| 亚洲精品国产av天美传媒| 经典丝袜一区| 麻豆一区二区三区在线看 | h无码动漫在线观看| 亚欧高清在线| 天天影视综合网欧美精品| 男人的天堂色偷偷青青草视频婷婷网| 亚洲综合伊人| 91精品国产91久久青草| 91三级理论片播放器| 五月丁香啪啪| 富二代亚洲精品99| 九九九精品色乱九九九| 国产精品久久久久久久久久久久久久吹| 人妻一区二区三区四区视频| 五月婷婷六月丁香网址| 激情五月综合网| 伊人久久久日韩一区| 成人草草视频| 17c在线成人免费A片观看| 熟女被操视频网址| 久久亚洲天天做| 男人的天堂三级| 青娱乐二区免费| www.99色| 视频在线中文字幕| 69av一区二区三区| 久热这里| 九色97| 自拍盗摄一区| 91中出在线| 国产极品精品美女视频| 天天干天天拍| 99re在线视频国产| 岛国激情视频在线观看| 日本在线一二 | A级在线视频| 欧美十八禁在线看| 最新av在线| 婷婷五月天激情四射| 亚洲成人福利电影免费 | 久久久久久波多野吉衣高潮| 九九草| 日本精品不卡一二三区| 久操B网| 骚妻少妇精品性色无码四色A V| 色婷婷国产精品一区在线观看| 欧美日韩日产免费网站看| 91精品电影18| 天天干人人乐| 成人福利视频网| 国产欧美日韩臀| 亚洲成a人v欧美综合天堂下载| 中文字幕精品资源在线| 夜夜操一区二区| 乱伦熟妇一区二区| 成年女人一区| 欧美色图91| 婷婷色在线| 老司机福利社视频在线观看| 国产综合网站在线播放 | 另类图片综合| 亚洲午夜免费狠狠干| 97久久久久久久久久| 欧美少妇性爱网站| 久久少妇人妻| 精品国产91av一区二区三区| 亚州久久9| 18禁在线视频| 欧美熟妇操操视频| 亚洲密乳AV| 夜夜嗷嗷一区二区| 日本黄色精品专区网站| 五月花婷婷| 九九久久久| 91丨豆花丨熟女| 日韩内射视频| 超碰人妻久久| 综合久久99| 欧美色网络| 啊啊啊好爽快点啊啊啊嗯嗯| 精品国产乱子伦一区二区三区,精品一| 亚洲一区二区性爱电影| 亚洲欧美内射| 狠狠色色| 91美女小视频| 青青青国产手线观看视频2| 国产精品视频电影| 強姦亂倫a| 97超碰久久色| 玖玖资源综合在线视频| 碰人碰碰人人开房人肉| 多乙久久久久久| 婷婷精品久久av影视| 狠狠操狠狠| 青青色在线观看| 一二三啪啪专区| 在线综合 亚洲 欧美中文字幕| 中文字幕人妻色偷偷久久皮| 在线综合色| 99热线麻豆 | 俺去俺来也在线www| 日本久久久久久久久久| 五月丁香六月激情综合| 欧洲在线性爱视频| 欧美激情片一区二区| 伦伦成年午夜免费视频| 国产一区二区在线看| 久久草草欧美精品| 日本熟女不卡视频| 粉嫩av一区二区三区四季| 啊视频在线| 麻豆三极片| 裸体美女久久久| 99熟女| 精品传媒在线一区| 天天综合香 ld视频| 国产自产自拍| 中文字幕、久久精品国产2020、久久综合久久自在自线精品自、亚洲 | 一级特黄aaa大片在线观看成人一级片在线观看 | 天天色黄色影院天天操| yazhouzaixian| 人妻少妇蜜桃视频欧美一区| 三级激情网站| 婷婷探花久久精品一区| 十八禁网站在线| 天天搞在线综合网| 天天网综合| 老熟妇一区二区三区啪啪| 欧美色婷婷| 人人干黄色| 操老熟女AV| 国产精品青草综合久久| 日韩免费在线观看不卡| 夜夜嗨TV| 久99久视频精选| 日本视频一区二区三区| 好爽免费视频| 玖玖爱伊人玖玖爱| 乱理日韩中文| 五月丁香婷婷色| 中文字幕精品一区欧美| 色爱天堂| 超碰久久精品| 91在线美女| 美女被艹尤物视频| 日本高清视频xxxx| 精品天堂| 欧洲小说色图视频另类| 大香蕉色十月| 日本免费人成视频播放120秒| 国产一区在线看| 免费亚洲国产精品久久一区| 久久理论字幕视频| 色色色五月婷婷| 亚洲成人日韩小说| av三级电影在线播放| 深夜激情| 天天操人人操骚逼网站| 日本3级一区二区免费| 日产操逼| 国产精品视频在线观看| 亚洲骚男同com| 日本超碰97日韩精品人妻| 日本精品一区二区三区四区的功能| av东京热男人的天堂| 男人的天堂成人的社区| 综合五月天| 久久久夜夜嗨免费视频| 青娱乐国产精品| 俄罗斯一区二区视频在线观看| 97在线免费观看视频| 偷拍色图| 99re不伦| 91人妻视频在线| 免费啪啪一级视频| 一级性爱啪啪视频| 一级做受视频免费是看美女| www亚洲欧美| 国产精品农村妇女精品| 99蜜月精品久久| 中文字幕、久久精品国产2020、久久综合久久自在自线精品自、亚洲 | 97av,com| 欧美天天综合站| 亚洲美女 晚间男人天堂 | 天天干18禁| 国产91美女视频| 哑洲在线| 久久久久久久综合,国产| 学生妹天天看| 亚洲色图第四色| 国产精品一区二区后入| 粉嫩小泬久久久一区二区| 亚洲天堂综合AV| 亚洲有码 欧美精品| 一区二区三区精品黑丝白丝酒店对鸡| 超碰91在线| 日韩性爱视频免费在线| 91|九色|国产熟女| 亚洲精品三| 午夜大香蕉| 992这里有精品| 午夜理论片在线观看免费| 黄色一级视| 日本一级性爱| 亚洲精品亚洲人成在线麻豆| 国产三级日产三级韩国三级| 欧美日韩性爱操大逼| 成人av动漫在线观看| www.色综合| 日本三级大片| 伊人影院在线理论播放| 色女综合| 啊啊啊不要嗯嗯在线观看| 国产诱惑| 天美欧美国产| 后入式在线免费观看60秒| 好屌色综合| 国产久久一区二区| 国产精品动态一区二区三区四四| 97射欧美| 屁股久久久久久| 精品无码一区二区三区| 一本一道波多野毛片中文在线| 综合影视国产无码| 免费观看国产小粉嫩喷水精品午| 欧美性爱三区二区| 国产亚洲色婷婷久久99精品91| 大胆91| 久草综合京东| 久久国产99精品72福利 | 亚洲有薄码区日本系列中文字幕| 亚洲熟女国产综合另类| 亚洲一区二区 麻豆传媒| www.欧精品| 国产一级做a爰大片免费久久| 亚洲黄色a级片| 97人人操人人干| 国产精品国产自产拍高清AV| 视频分类 国内精品| 超碰97久久国| 久久99久久99精品天美传媒棢·纸:.| 精品人妻一区二区三区蜜桃视频| 天天伊人| 精品国产91av一区二区三区| 久久婷婷影院| 日日AV加勒比| 欧美淫乱视频| 欧洲久久一二线| 97人人操人人摸人人爱| 亚洲另类综合欧美| 性色av一区二区| 综合亚洲欧美| 强奸乱伦AV网站| 五月天婷婷欧美三区| 亚洲情色五月天 | 韩日自拍| 大香蕉伊人网| 熟女突然公开看18禁影片| 欧美大香蕉在线观看| 99re6国产精品99re| 亚洲AV人人澡人人爱| 国产又黄又粗又猛大片| 亚欧性爱在线无码| 精品久久久久黄少妇| 伊人宅男大香蕉| 26uuu性物| 小草三级久久观看| 午夜精品久久久久| 日韩在线电影| 国产第25页在线观看| 国产精品乱人伊人网| 久久人爽| 肉动漫无遮挡h在线观看| WWW黄片COM| 国产精品久久久777| 天天色欧美| 极品美女福利在线观看| 殴美日韩m| 深夜视频| 亚洲九月丁香| 久久99999| 伊人操| 久久久久久AⅤ无码免费肉站| 欧美性爱97超碰| 97操97干| 欧亚性爱啪啪| surenchaopeng| 色牛aV| 五月丁香| 四虎影视国产精品| 操逼逼福利视频| 美女裸体麻豆天美蜜桃91| 殴美色网| 新版天堂中文资源8在线| 97爱b| yiqicaoav| 男人的天堂2010| 天天干夜夜鈤| 牛黄色久午久| 欧美亚州综合图片| 中文字幕人成乱码熟女香港| 欧美日韩免费专区在线| 超碰在线综合97| 亚洲色欲天天天堂色欲网女| 亚洲情色婷婷五月天| 伊人麻豆传媒| 人人干人人搞人人摸| 动漫av中文| 日韩 欧美 视频 在线 一区| 青青草色插素人| 日小BB小视频| 色欲人妻一区二区在线| 大香蕉免费3| 精彩国产视频播放1区2区| 97在线视频网站| 猛交交| 亚洲欧洲自拍| 操狠狠| 男人的天堂2018| 亚洲综合网电影91| 神马精品视频| 亚洲色天| 久久久久一本一区二区青青蜜月| 精品美女久久久久| 97se综合网| 成全动漫视频观看免费下载| 免费观看有码高清视频| 亚洲97在线观看| 伊人影院在线理论播放 | 国产粉嫩蜜臀av一区二区三区 | 综合色区偷拍| 粉嫩国产精品久久粉嫩| 色九久| 久99| 天天综合网日韩| 97色诱| 九月丁香婷婷色| 精品999日本| 嗯啊抽插大香蕉网页| 国产AV人人夜夜澡人人爽麻豆| av天堂5| 久久久久久无码人妻中文字幕| 操逼网免费无码视频| 国产精品乱码久久久| 日韩人妻资源网| 人人操 欧美| 欧美成人国产精品| 91精品久久久久久77777| 丝袜综合网| 欧美九九爱| 免费试看60秒| 国产中文福利| 色婷婷九月天天综合| 中国91AV| 国产欧美美女免费观看视频| 国产第12页| 超碰偷拍| 色穴精品| 91爆操视频| 亚洲色婷婷综合久久久久中文| 五月婷婷大香蕉| 中英熟女操女| 色偷偷超碰亚洲| 裸体美女国产免费久久久网站| 国产无马在线| 欧美手机在线综合| 欧美熟爽综合| 天天操天天射天天日| 久久精品中文| 九九Av| 伊人黄色片| 亚洲人妻色图| 超硑97精品| 女人高潮抽搐喷水视频网站| 最新国产精品| 天天搞欧美| 97综合在线观看| 国产一区二区在线播放量| 久久精品六区| 伊人色综合超碰| 亚洲精品国产无码高清| 日韩欧美女求操每天更新| 熟妇精品juliaannAV| 免费精品福利在线观看| 乱性AV| 九九超碰综合网| 97干在线看| 亚洲国产高清福利视频| 日产操逼| 91在线国产后入风骚翘臀美女素人| 久草精品热视| 26uuu国产成人综合| 啊啊啊啊啊在线| 欧美在线视频播放| 国产欧美日韩女同性恋ww喷水精品| 蜜乳AV一区| 国产一区二区三区高清视频| 9.1小视频| 欧美亚洲美少妇一区二区| 亚洲五月天激情| 岛国在线一区二区三区| 日韩性爱一级片| 美女t无毒不卡不卡| 久久久久9999妇女| 91蜜臀在线久久久久| 综合啪啪| 国产aⅴ无码片毛片一级网站| 日本久久女同性恋视频| 久操视频这里只有精品| 色麻豆AV| 青青草黑寡妇男人天堂| 啊啊啊好爽快点啊啊啊嗯嗯| 日韩色欲久久一二三四区| 国产精品久久久| 中文有码9| 欧美在线干| 四虎视频在线观看| 人人色97| 国产黄色在线播放观看| 亚州欧美色图| 亚洲综合网91| 熟人人妻少妇精品久久| 国产丸一视频| 日本精品性生活久久久| 精品久久久久瑟瑟| 无码人妻一区二区一牛影视| 久久女婷| 91free福利| 首页中文字幕中文字幕免费| 久久久久久亚洲中文| 91亚洲欧洲| 国产青青综合伊人| 美女网站黄页| 精品一区二区三区四区外站| 久久鲁夜| 国产嫩草精品A88AV在线| 天天干天天日天天射黄色| 99无码精品| 国产99热| 97五月天| 在线99热| 99色色网| 99这里有精品| 美女黄色一级A视频| 久久久网站| 在线 制服丝袜中出 人妻| www.色五月| 操人妻少妇中文| 一区二区激情国产熟女| 日本高清视频xxxx| 久久黄色视频一区二区三区| 国产家庭乱伦性爱视频| 国产野战露脸在线播放| 免费精品人妻一区二区三| 琪琪精品免费一区二区三区 | 五月丁香| 日韩中文字幕二区| 一,爱啪啪,在线免费视频| 韩国一级婬片A片无码天美| 欧美 日韩 亚洲 春色| 密乳无码| 黑人精品成人一区二区三区 | 久久久精品一区二区| 亚洲精品国产熟女久久久| 激情视频一二三| 色综合 加勒比| 最新制服中文第一页| 外国91| 成人五月天丁香激情综合| 一个国产在线综合网站| 人人摸人人摸人人干| 性爱久久| 成人精品视频一区二区| 伦理日韩国产久久| 国产精品久久泡妞网站| 天堂69亚洲精品中文字| 色哟哟511老熟女| 99超级碰免费视频| 欧美高清性猛交| 综合情欲网| 黄片www视频免费| 中文字幕日韩人妻视频一区二区三区| 亚洲免费成人在线高清无码视频| 操www| 在线视频日韩欧美国产| 亚洲色图大香| 夜夜国产一区| 久久九九久精品国产尤物|国产精品爽黄69天堂A片潘金莲,国产亚洲精品第一综合 | 99操逼| 五月丁香啪啪网| 99热精品青草在线| 日韩人妻精品中文字幕| 91色噜噜狠狠| 日本一天色道久久久精品视频| 日日日日做夜夜夜夜做无码97| 欧美东京热青青草| 日韩操逼性鲍| 一级A啪啪啪啪| 大香蕉伊人亚洲| 中文字幕人乱码中文字的预防方法 | 久久亚洲天天做| 96一区二区三区| 日韩黄片视频试看| 超碰人人干| 伊人久久久日韩一区| 2020中文字幕在线观看| 凹凸视频在线观看伊人| 91肏屄网| 中文字幕日韩人妻视频一区二区三区交换夫妻 | 黄骗免费网站| 黑人黄片在线免费观看| 无码欧美有限公司| 亚洲日本大香蕉1| 韩国一级婬片A片无码天美| 熟女人妻av在线资源,黄色的资源| 色偷综合| 97在线免费| 久精品无码av一区二免费国产在线观看| 殴美日韩m| 日日摸天天爽夜夜欢| 国产成人www免费人成看片| 丝袜综合| 高清孕妇孕交 交| 国产精品农村妇女| rion磁力链接| 国产成人bd在线观看| 75大香蕉| 欧美人黑A片无码免视费| 精品人妻美妇91job| 蜜臀99999| 日韩无码一级黄色av片| 久久性爱视频| 久久久精品九| 午夜偷拍久久熟女| 啊啊啊好舒服好爽啊啊啊视频| 欧美色网络| 日本肉体xxxx裸交| 黑人干亚洲| 乱伦av麻豆| 天天澡天天爽日日av| 天天综合青苹果| 亚洲综合婷婷| 91亚洲欧美综合高清在线| 超碰国产精品久| www.高清无码诱惑一区.com| WWW.操逼.COM| 亚洲天堂男人在线|