99精品久久精品一区二区-亚洲熟妇无码?v在线播放-日本国产精品无码字幕在线观看-久久久亚洲永夜AV-亚洲一级无码一区二区一-免费国产成高清人在线视频-中文字幕乱码免费观看-国产毛片精品妇女久久久

ARTICLE DETAIL

資訊詳情

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

Pandas缺失值填充實(shí)戰(zhàn):fillna、插值與分組前向填充陷阱

Pandas缺失值填充實(shí)戰(zhàn):fillna、插值與分組前向填充陷阱 有一次接手一份銷售明細(xì)表三萬(wàn)多行兩個(gè)關(guān)鍵字段各有幾百個(gè)空。當(dāng)時(shí)第一反應(yīng)是dropna()一行刪干凈結(jié)果跑完發(fā)現(xiàn)月度匯總對(duì)不上——被刪掉的很多是同一張訂單的不同商品行刪掉一行整張單的金額就少一塊。那次之后我才真正把 Pandas 缺失值處理當(dāng)成一個(gè)需要做決策的環(huán)節(jié)而不是一句fillna(0)就收工。這一節(jié)聊的就是填充這條路線什么時(shí)候能補(bǔ)、補(bǔ)什么值、補(bǔ)完之后數(shù)據(jù)的結(jié)構(gòu)和類型會(huì)不會(huì)偷偷變形。它適合已經(jīng)會(huì)寫isna()和dropna()、但在真實(shí)臟數(shù)據(jù)上總是補(bǔ)出問題的朋友也適合剛看完前幾節(jié)、想看看工程里到底怎么落地的人。填充是缺失值處理里自由度最大、也最容易翻車的一環(huán)因?yàn)樗幌駝h除那樣有明確的邊界補(bǔ)什么值完全取決于你對(duì)業(yè)務(wù)的理解。1. 從刪掉到補(bǔ)回去這一節(jié)要解決的是形狀保持問題1.1 前三節(jié)留下的尾巴數(shù)據(jù)不能隨便丟刪除法之所以簡(jiǎn)單是因?yàn)樗褯Q策權(quán)交給了行數(shù)。只要dropna的參數(shù)一調(diào)剩下多少行是確定的你不用思考每一行的含義。但真實(shí)業(yè)務(wù)里行往往帶著身份。一條訂單記錄、一條用戶行為日志、一條設(shè)備采樣刪掉它等于抹掉一個(gè)事實(shí)。特別是當(dāng)你后面要做同比、環(huán)比、留存、漏斗這類強(qiáng)依賴行數(shù)完整性的分析時(shí)缺失行會(huì)被算成沒發(fā)生而不是沒記錄這兩種含義在業(yè)務(wù)上差得很遠(yuǎn)。我見過一種很典型的錯(cuò)誤某次做日活統(tǒng)計(jì)先dropna(subset[user_id])再nunique()結(jié)果日活比后臺(tái)報(bào)表低了百分之十幾。原因不是數(shù)據(jù)錯(cuò)了而是user_id缺失的那批記錄被當(dāng)成無(wú)效行清掉了可它們?cè)跇I(yè)務(wù)口徑里屬于未登錄訪客是要算進(jìn)某些指標(biāo)的。這就是刪除法的隱性代價(jià)——它不報(bào)錯(cuò)只是悄悄改變了分母。所以進(jìn)入填充環(huán)節(jié)之前先問自己一個(gè)問題這一列的缺失代表沒有這個(gè)值還是這個(gè)值沒被記錄前者可以考慮填一個(gè)語(yǔ)義占位符后者更適合刪除或單獨(dú)標(biāo)記。這個(gè)問題沒有標(biāo)準(zhǔn)答案但你必須回答因?yàn)楹竺婷恳粋€(gè)fillna的取值都由它決定。1.2 填充的三條路線與它們的代價(jià)工程里常見的填充思路大致分三類代價(jià)各不相同我把它整理成一張表方便你對(duì)著場(chǎng)景選路線典型寫法適用場(chǎng)景主要代價(jià)常量填充fillna(0)、fillna(未知)缺失本身有業(yè)務(wù)含義或后續(xù)要單獨(dú)統(tǒng)計(jì)會(huì)稀釋均值可能掩蓋異常統(tǒng)計(jì)量填充fillna(mean/median/mode)數(shù)值型特征、缺失比例不高低估方差破壞列間相關(guān)性前后值填充ffill()、bfill()、interpolate()時(shí)間序列、有順序的流水?dāng)?shù)據(jù)依賴順序假設(shè)順序錯(cuò)了結(jié)果全錯(cuò)常量填充最省事但最容易被濫用。fillna(0)放在金額列上會(huì)讓沒記錄金額和金額為零混成一類后面做分布統(tǒng)計(jì)時(shí)均值直接往下掉。fillna(未知)放在類別列上相對(duì)安全因?yàn)樽址旧砭褪且粋€(gè)明確的類別標(biāo)簽后續(xù)做value_counts()也不會(huì)丟信息。我的習(xí)慣是數(shù)值列優(yōu)先考慮中位數(shù)或業(yè)務(wù)基準(zhǔn)值類別列優(yōu)先考慮未知這類顯式標(biāo)簽只有確實(shí)存在零這個(gè)業(yè)務(wù)事實(shí)的場(chǎng)景才填 0。統(tǒng)計(jì)量填充的核心風(fēng)險(xiǎn)是方差收縮。用中位數(shù)填一百個(gè)空這一百個(gè)點(diǎn)的取值全部壓到同一個(gè)數(shù)上列的離散程度被人為壓平。如果你后面要用這列做回歸或者做異常檢測(cè)這個(gè)影響是實(shí)實(shí)在在的。前后值填充則完全依賴順序假設(shè)一旦數(shù)據(jù)沒有按正確的時(shí)間或編號(hào)排好序ffill()會(huì)把不相鄰的記錄串到一起這種錯(cuò)誤在結(jié)果上很難看出來(lái)因?yàn)檠a(bǔ)出來(lái)的值本身是合理的。1.3 先做一次缺失畫像再?zèng)Q定補(bǔ)不補(bǔ)動(dòng)手之前我一般會(huì)先跑幾行代碼把缺失的分布摸清楚這一步花不了一分鐘但能省掉后面大量返工import pandas as pd import numpy as np df pd.read_csv(orders.csv) # 每列缺失數(shù)量與比例 profile pd.DataFrame({ missing: df.isna().sum(), ratio: df.isna().mean().round(4), dtype: df.dtypes.astype(str), }) print(profile.sort_values(ratio, ascendingFalse)) # 每行缺失了幾個(gè)字段 df[_miss_cnt] df.isna().sum(axis1) print(df[_miss_cnt].value_counts().sort_index())df.isna().mean()這個(gè)寫法比sum()/len(df)更穩(wěn)因?yàn)樗诳毡砩喜粫?huì)除零報(bào)錯(cuò)??唇Y(jié)果的時(shí)候我關(guān)注三件事第一有沒有某一列缺失比例超過一半這種列填充的意義已經(jīng)不大更該考慮整列丟棄或者單獨(dú)建一個(gè)是否有值的標(biāo)記列第二缺失是不是集中在少數(shù)幾行上如果_miss_cnt的分布里有一批行缺了七八個(gè)字段那基本可以判定是采集環(huán)節(jié)斷掉了這批行應(yīng)該單獨(dú)隔離而不是粗暴填充第三缺失比例在dtype上有沒有規(guī)律比如所有object列都缺那多半是導(dǎo)出時(shí)字符編碼或空字符串的問題。提示_miss_cnt這種工作列記得在用完之后刪掉別讓它跟著數(shù)據(jù)流進(jìn)下游否則某天你會(huì)發(fā)現(xiàn)模型里多了一個(gè)莫名其妙的特征。2. isna 判不出來(lái)就等于沒缺失假缺失的識(shí)別與清洗前置2.1 None、NaN、NaT、pd.NA 四者的檢測(cè)差異很多人以為缺失值只有一種其實(shí) Pandas 里至少活躍著四種None、np.nan、pd.NaT、pd.NA。好消息是df.isna()和pd.isna()對(duì)這四種都能識(shí)別所以你日常用isna()做檢測(cè)基本不會(huì)漏。壞消息是它們的比較行為完全不同這會(huì)在條件篩選中給你埋雷。np.nan的經(jīng)典特性是它不等于自己np.nan np.nan返回False。這在寫篩選條件時(shí)非??觗f[df[col] np.nan]永遠(yuǎn)返回空表。同理df[col] ! np.nan也不是非缺失的意思它會(huì)返回全True。正確寫法只有df[df[col].isna()]和df[df[col].notna()]兩種別用等號(hào)。pd.NA是 Pandas 1.0 之后引入的標(biāo)量缺失值配合Int64、boolean、string這些可空類型使用。它的比較行為更理性——pd.NA pd.NA返回的是pd.NA而不是True或False所以拿它做布爾判斷會(huì)直接拋異常val pd.NA if val: # TypeError: boolean value of NA is ambiguous pass這個(gè)報(bào)錯(cuò)我第一次遇到時(shí)找了半天因?yàn)榇a邏輯看起來(lái)完全正常。根因是pd.NA參與布爾上下文時(shí)無(wú)法確定真假。規(guī)避辦法很簡(jiǎn)單判斷缺失統(tǒng)一用pd.isna(val)不要寫if val。NaT是時(shí)間類型的缺失值行為和np.nan類似pd.NaT pd.NaT同樣是False。2.2 字符串形式的缺失和占位符真正讓我吃虧的是假缺失。從業(yè)務(wù)系統(tǒng)導(dǎo)出的 CSV 里缺失經(jīng)常長(zhǎng)這樣空字符串、NULL、null、N/A、-、無(wú)、nan。這些在 Pandas 眼里都是合法的字符串isna()一個(gè)都不會(huì)報(bào)。你跑df.isna().sum()看到零缺失心里踏實(shí)了結(jié)果value_counts()一出來(lái)NULL排第三。這類問題必須在入口處解決不要留到填充階段。我的做法是在read_csv階段就把常見占位符注冊(cè)成缺失df pd.read_csv( orders.csv, na_values[, NULL, null, N/A, NA, -, 無(wú), nan, NaN], keep_default_naTrue, )keep_default_naTrue是默認(rèn)值它會(huì)把NaN、null、None這些常見標(biāo)記一起識(shí)別掉一般不用動(dòng)。但如果你業(yè)務(wù)里真的存在字符串NA比如某個(gè)地區(qū)代碼就是 NA那就得把它從na_values里拿掉或者用keep_default_naFalse然后手動(dòng)列全。這個(gè)取舍必須做因?yàn)橐坏┌延行е嫡`判成缺失后面補(bǔ)回去的值就全是錯(cuò)的。已經(jīng)在內(nèi)存里的 DataFrame 也有補(bǔ)救辦法df df.replace({: np.nan, NULL: np.nan, -: np.nan})replace會(huì)遍歷匹配列多的時(shí)候速度不快但勝在直觀。如果只針對(duì)某幾列寫成df[[col_a, col_b]].replace(...)再賦值回去會(huì)更快注意別漏掉賦值這一步replace默認(rèn)不原地修改。2.3 用 dtype 反推缺失來(lái)源還有一個(gè)不太起眼的排查角度看 dtype。如果一列本該是整型結(jié)果dtypes顯示float64那幾乎可以確定里面混了NaN因?yàn)檎蛿?shù)組裝不下缺失值Pandas 會(huì)自動(dòng)把它升成浮點(diǎn)。反過來(lái)一列object類型卻全是數(shù)字字符串說(shuō)明導(dǎo)入時(shí)沒做類型推斷這時(shí)候用pd.to_numeric(errorscoerce)轉(zhuǎn)一遍轉(zhuǎn)換失敗的會(huì)變成NaN這本身就是一次缺失識(shí)別。df[amount] pd.to_numeric(df[amount], errorscoerce) # 轉(zhuǎn)換后 isna 數(shù)量變化的部分就是原來(lái)的臟值errorscoerce是關(guān)鍵參數(shù)默認(rèn)的raise遇到臟值直接拋異常ignore則原樣返回不做轉(zhuǎn)換只有coerce會(huì)把無(wú)法解析的轉(zhuǎn)成缺失。這個(gè)寫法我在清洗金額、數(shù)量、評(píng)分這類字段時(shí)用得最多比正則匹配省事得多。3. fillna 的四種傳參姿勢(shì)以及 inplace 到底該不該用3.1 標(biāo)量、字典、Series、method 的選擇邏輯fillna的參數(shù)類型決定了它的作用范圍選錯(cuò)了會(huì)出現(xiàn)以為填了其實(shí)沒填或者填錯(cuò)了列的情況。傳標(biāo)量最直接df.fillna(0)會(huì)把全表所有缺失都換成 0。這個(gè)寫法在混合類型的表上非常危險(xiǎn)因?yàn)樽址幸矔?huì)被塞進(jìn)數(shù)字 0整列 dtype 變成object后面做字符串操作時(shí)全是坑。除非你確認(rèn)表里只有數(shù)值列否則不要這么寫。傳字典是精準(zhǔn)控制的主力寫法鍵是列名值是該列的填充值df df.fillna({ amount: 0, category: 未知, score: df[score].median(), })字典里沒出現(xiàn)的列保持原樣這一點(diǎn)很關(guān)鍵——它意味著你可以只處理該處理的列剩下的留給后面的邏輯。我一般會(huì)先用一個(gè)字典把每列的填充策略寫清楚相當(dāng)于把決策顯式記錄下來(lái)方便回看。傳 Series 適合每列一個(gè)不同的值且有計(jì)算邏輯的場(chǎng)景最常見的是用均值填充num_cols df.select_dtypes(includenumber).columns df[num_cols] df[num_cols].fillna(df[num_cols].mean())注意這里必須顯式選數(shù)值列。直接寫df.fillna(df.mean())在 Pandas 2.x 上會(huì)因?yàn)閙ean()遇到非數(shù)值列而報(bào)錯(cuò)老版本則會(huì)靜默丟掉非數(shù)值列兩個(gè)版本行為不一致是個(gè)典型的版本遷移坑。method參數(shù)ffill、bfill在新版本里被標(biāo)記為棄用Pandas 2.1 之后推薦直接用df.ffill()和df.bfill()。如果你維護(hù)的代碼要跨版本跑建議統(tǒng)一改成新寫法fillna(method...)雖然還能用但警告會(huì)一直刷屏。3.2 inplaceTrue 與鏈?zhǔn)劫x值的那點(diǎn)事inplaceTrue看起來(lái)省事實(shí)際上是 Pandas 里最容易出問題的一類寫法。它的問題不在于功能而在于它不返回新對(duì)象所以不能參與鏈?zhǔn)秸{(diào)用# 這樣寫df 根本沒變 df.fillna(0, inplaceTrue) # 這樣寫會(huì)報(bào)錯(cuò)因?yàn)?fillna 返回 None df df.fillna(0, inplaceTrue)第二種寫法是新手高頻錯(cuò)誤賦值之后df變成None后面所有操作全部崩掉而且報(bào)錯(cuò)信息往往出現(xiàn)在很遠(yuǎn)的地方排查起來(lái)很費(fèi)勁。更隱蔽的是視圖問題。如果你手上的df是從一個(gè)大表切出來(lái)的inplaceTrue可能觸發(fā)SettingWithCopyWarning甚至在某些情況下改的是副本而不是原表你以為改了其實(shí)沒改sub big_df[big_df[status] paid] sub.fillna(0, inplaceTrue) # 可能警告也可能不生效穩(wěn)妥的做法是永遠(yuǎn)不用inplace改成顯式賦值并且在切片時(shí)加.copy()sub big_df[big_df[status] paid].copy() sub sub.fillna(0)多寫一行賦值能省掉后面半小時(shí)的排查時(shí)間這筆賬很劃算。我現(xiàn)在的習(xí)慣是項(xiàng)目里全局禁用inplaceTrue代碼審查時(shí)看到就打回去改。3.3 limit 和 axis前向填充的真正粒度f(wàn)fill和bfill都支持limit參數(shù)用來(lái)限制連續(xù)填充的最大長(zhǎng)度。這個(gè)參數(shù)在傳感器數(shù)據(jù)、日志流水場(chǎng)景里特別有用因?yàn)殚L(zhǎng)時(shí)間斷檔往往意味著設(shè)備離線這時(shí)候繼續(xù)沿用最后一個(gè)值就是在編數(shù)據(jù)。# 最多連續(xù)補(bǔ) 3 個(gè)超過的保持缺失 df[sensor] df[sensor].ffill(limit3)axis參數(shù)決定填充方向。默認(rèn)axis0是按行往下填也就是沿著索引方向axis1是按列往右填用同一行左邊的值補(bǔ)右邊的空。后者在寬表場(chǎng)景里有奇效比如每月一列的表想用上月值補(bǔ)本月空值就可以用axis1配合ffill。但這個(gè)操作對(duì)列順序極其敏感列一旦亂序補(bǔ)出來(lái)的值毫無(wú)意義用之前務(wù)必先排序并確認(rèn)列序。還有一個(gè)limit_area參數(shù)inside表示只填充被有效值夾在中間的缺失outside表示只填充兩端的缺失。這個(gè)在時(shí)間序列里很實(shí)用因?yàn)槭孜驳娜笔荒苡貌逯笛a(bǔ)中間斷檔才是真正需要插的地方。4. interpolate 不是萬(wàn)能膠插值方法的適用邊界4.1 線性插值、時(shí)間插值、索引插值的差別interpolate()的默認(rèn)方法是linear它在缺失點(diǎn)的前后各找一個(gè)有效值按等距做線性過渡。這個(gè)等距指的是索引位置等距不是時(shí)間等距。如果你的數(shù)據(jù)是按天采集但中間跳過了周末索引不連續(xù)linear就會(huì)把周五到下周一當(dāng)成一步補(bǔ)出來(lái)的值偏保守。methodtime解決的就是這個(gè)問題它按索引的實(shí)際時(shí)間間隔加權(quán)。前提是索引必須是DatetimeIndex否則直接報(bào)錯(cuò)df df.set_index(date).sort_index() df[value] df[value].interpolate(methodtime)methodindex和values的區(qū)別在于前者用索引的數(shù)值做插值依據(jù)后者用實(shí)際數(shù)據(jù)的值做依據(jù)。日常用得最多的是time和默認(rèn)的linear其余方法按需。這里有個(gè)容易被忽略的前提interpolate默認(rèn)只填中間的缺失。如果缺失出現(xiàn)在序列開頭或結(jié)尾默認(rèn)參數(shù)下它不會(huì)動(dòng)你會(huì)看到isna().sum()還有殘留。要處理首尾就加limit_directionboth但加之前想清楚——首尾缺失沒有參照值補(bǔ)出來(lái)的其實(shí)是外推可信度要打折。4.2 多項(xiàng)式與樣條order 調(diào)大不等于更準(zhǔn)methodpolynomial配合order參數(shù)可以做多項(xiàng)式擬合插值methodspline做樣條插值。這兩種方法看起來(lái)很高級(jí)實(shí)際使用限制很多。多項(xiàng)式要求有效點(diǎn)數(shù)量至少是order 1order3就意味著缺口兩側(cè)加起來(lái)至少要有 4 個(gè)有效值否則報(bào)錯(cuò)。更麻煩的是高次多項(xiàng)式會(huì)出現(xiàn)龍格現(xiàn)象也就是在區(qū)間邊緣劇烈震蕩補(bǔ)出來(lái)的值可能遠(yuǎn)超原始數(shù)據(jù)的取值范圍。我試過在一條平穩(wěn)的溫度曲線上用order5插值結(jié)果補(bǔ)出來(lái)的峰值比實(shí)際最高溫還高出好幾度這種結(jié)果拿去做告警閾值就是災(zāi)難。樣條方法依賴scipy環(huán)境里沒裝會(huì)直接報(bào)ImportError這在容器化部署時(shí)是個(gè)常見的漏裝項(xiàng)。而且樣條同樣對(duì)噪聲敏感數(shù)據(jù)本身抖動(dòng)大的時(shí)候插值曲線會(huì)跟著抖。我的判斷標(biāo)準(zhǔn)很簡(jiǎn)單數(shù)據(jù)本身是平滑的物理量溫度、壓力、連續(xù)位移可以試試樣條數(shù)據(jù)是業(yè)務(wù)指標(biāo)訂單量、訪問量老老實(shí)實(shí)用線性或前向填充。業(yè)務(wù)指標(biāo)往往有突變和周期性任何平滑假設(shè)都不成立。4.3 limit_direction 與 limit_area 的配合這兩個(gè)參數(shù)經(jīng)常一起用配合不好會(huì)出現(xiàn)補(bǔ)了一半的情況。limit_direction控制方向forward、backward、bothlimit_area控制區(qū)域inside、outside、None。默認(rèn)組合是forwardNone效果是只填中間的缺失首尾不動(dòng)。一個(gè)實(shí)際的組合示例我想補(bǔ)中間斷檔但最多補(bǔ) 5 個(gè)且不動(dòng)兩端filled df[value].interpolate( methodlinear, limit5, limit_directionforward, limit_areainside, )如果我想把兩端的缺失也用最近值補(bǔ)上就改成limit_directionboth并且limit_areaNone。這時(shí)候首尾會(huì)分別用bfill和ffill的效果填滿但要注意這是外推不是插值。4.4 非數(shù)值列與邊界缺失的處理interpolate只對(duì)數(shù)值列有效對(duì)object列調(diào)用會(huì)報(bào)TypeError。所以批量插值前一定要先篩列num_cols df.select_dtypes(includenumber).columns df[num_cols] df[num_cols].interpolate(methodlinear, limit_directionboth)另外一個(gè)邊界情況是整列全空或者只有一個(gè)有效值。全空列插值后還是全空這沒什么可說(shuō)的只有一個(gè)有效值的列線性插值會(huì)把這個(gè)值鋪滿整列看起來(lái)補(bǔ)全了實(shí)際上是偽數(shù)據(jù)。這種情況我寧可保留缺失也不要制造一整列常數(shù)因?yàn)樗鼤?huì)嚴(yán)重誤導(dǎo)后續(xù)的統(tǒng)計(jì)。5. 分組內(nèi)的前向填充groupby transform 的對(duì)齊陷阱5.1 為什么全表 ffill 會(huì)把上一個(gè)用戶的記錄帶過來(lái)這是我在真實(shí)項(xiàng)目里踩過最狠的一個(gè)坑。有張用戶行為表按用戶分組、按時(shí)間排序中間有些字段缺失我圖省事直接全表ffill()結(jié)果第一個(gè)用戶的最后一個(gè)值被帶到了第二個(gè)用戶的第一行。數(shù)據(jù)量大的時(shí)候這種污染是隱蔽的因?yàn)檠a(bǔ)出來(lái)的值看起來(lái)完全正常只有做用戶級(jí)別的聚合時(shí)才會(huì)發(fā)現(xiàn)某些用戶的初始狀態(tài)莫名其妙。根因很直接ffill()只看行的物理順序不知道分組這回事。它眼里只有上下行沒有用戶邊界。所以只要涉及多實(shí)體數(shù)據(jù)前向填充幾乎一定要配合分組。5.2 transform、apply、直接 groupby.ffill 三種寫法對(duì)比三種寫法我都用過效果有差異穩(wěn)定性也不同。第一種是直接調(diào)用df[val] df.groupby(user_id)[val].ffill()這是最簡(jiǎn)潔的寫法Pandas 內(nèi)部會(huì)對(duì)每個(gè)分組做填充再拼回原索引對(duì)齊是正確的。我在 1.5 之后的版本里用這個(gè)沒出過問題。第二種是transform配合 lambdadf[val] df.groupby(user_id)[val].transform(lambda s: s.ffill())功能上和第一種等價(jià)但多了一層 Python 函數(shù)調(diào)用大數(shù)據(jù)量下會(huì)慢一些。它的優(yōu)勢(shì)是可以在 lambda 里塞更復(fù)雜的邏輯比如先判斷再填。第三種是applydf[val] df.groupby(user_id)[val].apply(lambda s: s.ffill())這個(gè)寫法要小心。apply在某些 Pandas 版本和某些分組結(jié)構(gòu)下返回的索引層級(jí)不一樣直接賦值可能觸發(fā)索引對(duì)齊問題結(jié)果是整列變成NaN或者錯(cuò)位。如果你非要用apply先reset_index(level0, dropTrue)把多余的分組層級(jí)去掉再賦值。我現(xiàn)在的默認(rèn)選擇是第一種簡(jiǎn)單、快、對(duì)齊可靠。只有在填充邏輯帶條件判斷時(shí)才退到transform。5.3 分組鍵本身缺失時(shí)會(huì)發(fā)生什么還有一個(gè)更隱蔽的坑如果分組鍵自己就有缺失值groupby默認(rèn)會(huì)把這些行整個(gè)丟掉dropnaFalse才會(huì)保留。這意味著你按user_id分組填充user_id為空的那批行根本不在任何分組里填充結(jié)果對(duì)它們是NaN而且原表里這些行的其他字段也不會(huì)被處理。# 默認(rèn)行為user_id 為 NaN 的行被排除在分組之外 df[val] df.groupby(user_id, dropnaFalse)[val].ffill()加上dropnaFalse之后缺失的分組鍵會(huì)單獨(dú)成一組填充邏輯才能覆蓋到它們。這個(gè)參數(shù)在 Pandas 1.1 之后才有如果你的環(huán)境版本較老就得先用一個(gè)占位符把user_id的空值替換掉再分組。5.4 多列同時(shí)分組填充的寫法實(shí)際業(yè)務(wù)里經(jīng)常需要按多個(gè)鍵分組比如按用戶 會(huì)話填充分組內(nèi)的字段keys [user_id, session_id] cols [device, channel] df[cols] df.groupby(keys, dropnaFalse)[cols].ffill()多列同時(shí)ffill時(shí)Pandas 會(huì)對(duì)每個(gè)分組內(nèi)的每一列獨(dú)立做前向填充互不干擾。但要注意如果某一行device有值而channel為空填充后的channel會(huì)取同一分組內(nèi)最近一次有值的記錄而不是取同一行的device。這個(gè)語(yǔ)義是對(duì)的但你得清楚自己在做什么。6. 填充之后的 dtype 變化與下游連鎖反應(yīng)6.1 整型列被 NaN 拖成 float這是 Pandas 里最經(jīng)典的隱形變化。一個(gè)整數(shù)列只要出現(xiàn)一個(gè)NaN整列 dtype 就從int64變成float64因?yàn)?NumPy 的整型數(shù)組裝不下缺失值。這個(gè)變化不會(huì)報(bào)錯(cuò)但會(huì)在下游引發(fā)一連串問題ID 列變成浮點(diǎn)后顯示成1.0跟字符串拼接時(shí)多出.0做主鍵關(guān)聯(lián)時(shí)1和1.0匹配不上導(dǎo)出 CSV 時(shí)整列多了小數(shù)點(diǎn)。s pd.Series([1, 2, None]) print(s.dtype) # float64規(guī)避方式有兩種。一是填充之后再轉(zhuǎn)回整型df[id] df[id].fillna(-1).astype(int64)前提是填充值本身是整數(shù)這里用 -1 做缺失標(biāo)記。二是從一開始就用可空整型Int64df[id] df[id].astype(Int64)Int64注意大寫 I是 Pandas 的可空整型能同時(shí)裝整數(shù)和pd.NA不會(huì)被迫升成浮點(diǎn)。代價(jià)是它和其他庫(kù)的兼容性不如原生int64比如某些舊版的機(jī)器學(xué)習(xí)庫(kù)拿到Int64列會(huì)報(bào)錯(cuò)需要顯式.astype(int64)或.to_numpy(dtypefloat64, na_valuenp.nan)轉(zhuǎn)換。6.2 用填充值當(dāng)缺失標(biāo)記時(shí)的一致性用-1或0這類哨兵值填充之后最大的風(fēng)險(xiǎn)是后續(xù)忘了這回事把它當(dāng)成真實(shí)值參與計(jì)算。防止的辦法有兩個(gè)一是在填充的同時(shí)建一個(gè)標(biāo)記列記錄哪些位置是補(bǔ)的二是在管道里約定哨兵值只在展示層出現(xiàn)計(jì)算前必須還原成 NaN。df[amount_missing] df[amount].isna() df[amount] df[amount].fillna(-1).astype(int64)標(biāo)記列的好處是信息不丟代價(jià)是表變寬、需要維護(hù)。我一般只在關(guān)鍵指標(biāo)列上加標(biāo)記比如金額、等級(jí)、評(píng)分這幾個(gè)直接影響結(jié)論的字段普通描述性字段就不折騰了。6.3 填充結(jié)果的回歸校驗(yàn)填充完一定要做一次校驗(yàn)看看分布有沒有被改得離譜。最省事的做法是比對(duì)填充前后的描述統(tǒng)計(jì)before df_before[amount].describe() after df_after[amount].describe() print(pd.concat([before, after], axis1, keys[before, after]))重點(diǎn)看mean和std的偏移。用中位數(shù)填充時(shí)mean通常會(huì)往中位數(shù)方向靠std會(huì)明顯下降。如果偏移超過 10%說(shuō)明缺失比例已經(jīng)不低填充本身在改變數(shù)據(jù)的面貌這時(shí)候應(yīng)該在報(bào)告里顯式說(shuō)明處理方式而不是悄悄補(bǔ)完了事。另外一個(gè)校驗(yàn)角度是分位數(shù)。填充常量會(huì)讓某個(gè)分位點(diǎn)突然堆積大量相同值quantile([0.25, 0.5, 0.75])的結(jié)果里如果連續(xù)兩個(gè)分位點(diǎn)相等基本就是這個(gè)原因。7. 時(shí)間序列里的缺失重采樣、asfreq 與業(yè)務(wù)口徑7.1 resample 之后為什么憑空多出 NaNresample是按時(shí)間頻率重新組織數(shù)據(jù)如果原始數(shù)據(jù)在某些時(shí)間點(diǎn)上沒有記錄重采樣后的結(jié)果里這些位置就是NaN。這不是數(shù)據(jù)出錯(cuò)而是頻率對(duì)齊的必然結(jié)果。比如原始數(shù)據(jù)只有工作日的記錄按自然日重采樣后周末兩天就會(huì)空出來(lái)。daily df.set_index(date).resample(D).agg({amount: sum})這里有個(gè)語(yǔ)義問題必須先想清楚周末沒有記錄到底應(yīng)該補(bǔ) 0 還是保留NaN如果是每天銷售額這種口徑周末沒交易就是 0補(bǔ) 0 是對(duì)的如果是每天平均溫度這種口徑?jīng)]記錄就是沒測(cè)補(bǔ) 0 會(huì)把均值拉低應(yīng)該保留缺失或做插值。選錯(cuò)了整條曲線的形狀就變了。我一般的判斷標(biāo)準(zhǔn)是看指標(biāo)的可加性??杉又笜?biāo)金額、次數(shù)、條數(shù)在時(shí)間維度上聚合時(shí)空檔期的合理值通常是 0不可加指標(biāo)比率、均值、溫度、價(jià)格空檔期應(yīng)該保持缺失用插值或前值更合理。7.2 asfreq 和 reindex 的補(bǔ)位邏輯asfreq是把索引轉(zhuǎn)換成指定頻率不涉及聚合純粹是補(bǔ)位。它的作用和reindex類似但更簡(jiǎn)潔ts df.set_index(date)[amount] full ts.asfreq(D)asfreq之后可以用fill_value直接指定補(bǔ)位值full ts.asfreq(D, fill_value0)這個(gè)寫法比先asfreq再fillna(0)少一步語(yǔ)義也更清楚。但要注意fill_value只對(duì)新插入的位置生效原本就存在的NaN不會(huì)被它填充這一點(diǎn)很容易誤解。reindex的優(yōu)勢(shì)是可以指定完整的時(shí)間范圍包括原始數(shù)據(jù)里根本沒有的區(qū)間full_range pd.date_range(start2024-01-01, end2024-12-31, freqD) full ts.reindex(full_range)這個(gè)用法在做年度報(bào)表時(shí)很常見因?yàn)樵紨?shù)據(jù)可能只覆蓋了部分月份而報(bào)表需要完整的 365 天。7.3 補(bǔ)位之后再做差分和同比的注意事項(xiàng)時(shí)間序列補(bǔ)完位很多人下一步就是做差分或者同比。這里有個(gè)細(xì)節(jié)差分前必須確保索引是連續(xù)的否則diff()會(huì)把不相鄰的兩個(gè)點(diǎn)當(dāng)成相鄰算出來(lái)的差值沒有意義。asfreq或reindex之后索引就連續(xù)了但如果中間有重復(fù)索引結(jié)果還是會(huì)錯(cuò)最好加一句ts ts[~ts.index.duplicated(keeplast)]去重。同比計(jì)算也是同理pct_change(periods365)依賴索引的等距性索引不連續(xù)時(shí)這個(gè) 365 就不是一年。穩(wěn)妥的做法是先把數(shù)據(jù)對(duì)齊到日頻并補(bǔ)齊再做位移計(jì)算。補(bǔ)位的值會(huì)影響同比結(jié)果用 0 補(bǔ)和用前值補(bǔ)同比數(shù)字能差出一大截這個(gè)口徑必須在做分析之前跟需求方確認(rèn)清楚不能自己拍腦袋。7.4 重置索引前的最后一次檢查補(bǔ)位和填充做完重置索引之前我會(huì)跑一遍完整的檢查清單assert df.index.is_monotonic_increasing, 索引未排序 assert not df.index.has_duplicates, 索引有重復(fù) print(df.isna().sum()[df.isna().sum() 0])第一句確保有序第二句確保無(wú)重復(fù)第三句列出仍有缺失的列。第三句的結(jié)果不一定是錯(cuò)的——有些列本來(lái)就該保留缺失但你必須逐列確認(rèn)過而不是默認(rèn)應(yīng)該都補(bǔ)完了。這個(gè)習(xí)慣幫我抓到過好幾次漏填的情況特別是那些在字典里寫錯(cuò)了列名導(dǎo)致沒匹配上的填充規(guī)則。最后分享一個(gè)我在實(shí)際項(xiàng)目里的體會(huì)缺失值處理最難的不是寫代碼而是給每一個(gè)空位找到一個(gè)能說(shuō)服自己的理由。fillna(0)只需要一秒但解釋為什么這里填 0 而不是中位數(shù)可能要花十分鐘。這十分鐘花得值因?yàn)樗诤竺婷恳淮螖?shù)據(jù)被質(zhì)疑的時(shí)候都能替你回答那個(gè)問題。我現(xiàn)在的習(xí)慣是在清洗腳本里給每個(gè)填充決策寫一行注釋寫清楚依據(jù)和影響范圍半年后回頭看這些注釋比腳本本身更有價(jià)值。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
丁香婷婷天堂| 亚洲激情另类| 九九综合九色欧美狠狠| 人妻操逼视频| 伊人网大香| 欧美偷偷操| 99热99热不卡| 噜噜狠狠色综合久| 99爱在线视频| 人人操插| 人人色婷婷| 啪啪操超碰| 婷婷综合网站| 五月婷精品| 超碰在线94| 色呦呦美女| 色婷婷88| 欧美S码亚洲码精品M码| 六月丁香婷婷综合在线| 久久五月天婷婷视频| 欧美人与性动交CCOO| 丁香六月欧美| 深爱激情四射| 日本啪啪网| 另类图片色五月| 婷婷在线观看五月天在线视频| 丁香五月婷婷老师网站| 国产做A爰片毛片A片美国| 五月天亚洲综合网| 久久只这里有精品| 丁香六月激情综合| 婷婷网影院| 日韩国产在线精品| 天天干狠狠艹| www.99热国产| 六月婷婷深深爱| 婷婷六月伊人| 啪啪91| 97人人干。| 9 9热这里有精品| 亚洲六月婷婷| 天天色激情| 99区视频| 丁香五月婷婷久久综合激情网| 亚洲人妻AV| 深爱激清网| 三级三久久线久久99久目本WW| 狠狠精品干练久久久无码中文字幕| 快色t v在线入口| 久久婷婷成人| 在线不卡中文字幕| 狠狠色综合图片| 久久只有18视频| 久久精品只有这| 亚洲中文乱字字幕线在永久| 精品国产人人爱人人| 久久sp免费视频| 欧美黑人巨大性生话| www.五月天婷婷| 伊人婷婷五月| 婷婷五月激情基地| 五月婷成人网| 天天操综合网站| 激情婷婷六月| 丁香色成人| 欧美综合五月丁香六月婷| 亚洲成人高清在线| 色五月色图| 超碰九九热| 婷婷五月色情天| 婷婷播5月| 夜夜夜夜撸夜夜操| 婷婷六月丁香五月| 大香蕉久| 国产精品第一国产精品| 天天色天天操天天射| 久久久久久久久久久久久久久久一道本| 九九免费视频| 亚洲成人av中文| 五月天久草| 九九精品综合| 五月激情网络| 啪啪啪综合网| 色婷婷成人做爰A片免费看网站| 超碰97在线操| 精品牛仔裤超碰| 九九综合图片网| 狠狠久久婷五月| 999激情视频| 天天日天天做天天舔| 性视频久久| 深爱激情网五月| 九久9精品| 丁香五月在线观看综合| 狠狠干狠狠色| 啪啪日热| 六月五月丁香五月欧美| 婷婷综合视频| 久久婷婷亚洲| 超碰cap| 99热香港| 开心四月婷婷在线色播播| 伊人久久丁香婷婷六月五月综合| 五月天婷婷免费视频| 丁香婷婷六月天| 久久久中文| 第五色婷婷| 五月色影院| 国产99久久久国产精品免费看| 亚洲精级| 人妻操在线看| 亚洲欧美日韩VIP| 91久久综合亚洲噜噜成人在线| 99热在线中文字幕| 五月丁香婷婷深深爱| 久久大香蕉| 先锋影音av色五月天资源站| 婷婷五月综合婷婷| 五月婷婷,六月丁香| 碰99在线| 国产婷婷五月天| 这里只有精品视频在线| 欧美日韩99| 狠狠色狠狠色综合日日91| 六月丁香激情网| 五月天激情小说网| 久草a片| 久久婷婷视频| 五月丁香色色网| 91大神在线免费看视频全集男男一起操| 欧洲亚洲最新精品| 久久五月丁香| 99热久久这里只有精品| 国产午夜精品一区二区三区四区| 一起草无码| 99热精品网| 超碰人人干| 免费视频99| 97成人在线视频精品| 国产亚洲99| 亚洲成人在线五月天| www.久久久久| 99热国产国产| 亚洲日韩一页精品发布| 色情激情五月| 嫩草视频| 天天做天天爱天天玩| 六月婷综合| 五月玖玖| 欧美成人精品A片免费一区99| 97五月婷婷| 亚洲激情免费视频| 伊人综合婷婷| 五月婷婷成人| 嫩模aV在线| 九月av| 日本二级毛片二级毛片| 久久开心五月婷婷| 一起草av在线观看| 日韩成人电影AV| 色色爽爽天天| 丁香五月偷拍| 五月丁香亚洲婷婷| 婷婷不卡基地| 色欲婷婷五月天丁香| AV色色天堂中文| 六月婷婷亚洲| 亚洲精品第一国产综合亚AV| 玖玖热视频| 精品成人无码A片观看香草视频| 婷婷激情性爱| WWW.国产| 99视频只有精品| 狠狠色丁香婷婷五月| 91碰在线| 色欲日日躁| 久色激情| 久久精品亚洲一级牲爱综合 | 成人无码中文| 婷婷丁香五月亚洲| 欧美一级色| 在线播放成人网站| 丁香婷婷视频| www。狠狠干。com| 亚洲情综合五月天| 成人电影AV在线观看| 啊V视频在线观看| 久久玖玖综合| 激情婷婷五月天伊人在线观看| 狠狠爱成人综合网| 婷婷五月激情小说| 久久99热免费| 色婷婷久久综| 熟妇高潮一区av| 五月丁香久久| 欧美色欲色欲天天天www| 五月婷婷色色网址| 国产免费AV在线| 就99这里只有精品| 婷婷丁香激情综合色情| 99情色五月天| 中文字幕日产A片在线看| 9久9久| 激情综合色| 性色视频| 九九婷婷五月天影视| 1囯产午夜仑鲁鲁| 99久久婷婷国产综合精品草原| 天天噜天天爱| 麻豆忘忧草午夜| av在线观看免费| 人人射av| 碰97久久| 激情五月天第四色| 播丁香五月婷婷欧美| 九九人人精品| 激情五月天激情小说| 色婷婷香蕉| 久久丁香网| 五月婷婷综合网| 天天色色天天| 日韩操| 狠狠色婷婷7777久| 婷婷射综合| 超碰免费人人肏| 欧美精品99久久久| 亚洲五月天婷婷| 综合网五月天123| 五月丁香综合啪啪| 一级片sese片.COM| 午夜大香蕉| 操人精品| 大香蕉久久婷婷| 色五月丁香91| 六六久久黄色| 丁香亭亭激情四射| 色婷婷AV久久| 欧美色偷偷大香| 亚洲第一成人无码A片| 99视频在线精品| 婷婷大乡焦噜噜| 五月天精品视频| www 五月天 com| 五月天婷婷黄色视频| 日韩AV无码影片| 国产精品色| 激情99热| 五月天婷婷久久视频| 久久WW| 五月天综合视频| 亭亭五月激情亚洲在线| 亚洲激情精品| 丁香五月婷老师| 婷婷六月天亚州| 91热er| 丁香婷婷偷拍| 永久地址 色| 99热这里只有精品69| 亚洲婷婷月丁香五月| 狠狠干狠狠色| 99秘 在线| 五月天色官网| 婷婷狠狠久久| 丁香婷婷五色月| 国产99视频永久免费| anquye伊人| 五月婷婷六月丁香免费| 婷色成人| 色情五月婷婷| 久久性视频| 丁香六月色婷婷| 欧美草久久五月天91| 99日韩网站| 五月婷婷激情久久| 五月丁香婷婷基地| 51精品国自产在线| 婷婷91视频| 丁香婷婷AV| 婷婷综合国产| 久久五月天婷婷| 色色无码日韩| 婷婷五月天亚洲丁香| 精品A√| 婷婷五月天在线视频网站| 色久丁香五| 亚洲愉拍99热成人精品| 99久久婷婷国产综合| 99欧美| 少妇性按摩无码中文A片| 五月婷婷电影院| 丁香婷婷老司机久操| 97婷婷在线| 国产亚洲精品人人| 79精品视频在线观看,| 久久WW| 婷婷综合网站| 婷婷五月无码| 五月婷婷伊人网| 婷婷五月天综合小说网| 婷婷丁香五月亚洲| 丁香五月天激情四射网络不好 | 婷婷五月天视频亚洲| 超碰成人电影| 丁香婷婷五月激情四射网| 欧美日韩国产一区二区| 99综合视频| 亚洲激情五月天| 91夫妻网站九色| 人妻视频在线| 亚洲色婷婷五月| 91丨九色丨熟女|老版| 色情婷婷| 国产免费一区二区三州老师F1F1| 色婷婷狠狠久久综合五月| 欧美丁香五月| 久久成人亚洲欧美电影| 色五月无码| 99色色视频| 中字幕视频在线永久在线观看免费| 伊人青涩网| 激情综合五月激情XXXX| 99色干| 久久精彩视频18| av在线资源| 五月丁香六月激情综合欧美| 日韩人妻AV在线| 碰碰91| av大香蕉| 国产精品热搜丁香五月婷婷| 俺也去五月婷婷丁| 99热精品10| 婷婷丁香五月网| 五月丁香花成人社区| 五月婷在线| 人人操五月天| 久热精品视频| 极品少妇高潮啪啪AV无码| 大香蕉操操| 狠狠干综合网| 欧亚中文A V| 五月婷婷香蕉| 国产毛片精品一区二区色欲黄A片 极品人妻VIDEOSSS人妻 | 99re在线播放| 欧美日韓成人亚洲精品另类| 大香蕉人妻| 婷婷久久综合久| 人人草人人舔| 在线看黄色| 婷婷丁香色情五月天| 精品少妇人妻AV无码专区偷人| 婷婷五月丁香五月| 99热在线只有精品| AV色五月婷婷| 五月丁香色婷婷伊人| 婷婷狠狠干| 激情五月婷婷色综合| 99极品视频| 97久久视频| 99在线观看| 九九99精品视频在线观看| 九九视屏| 日本99视频| 色色色国产| 天天肏在线观看| 国产AV不卡福利| 色婷婷成人| 五月天丁香啪啪啪啪| 俺也去在线视频| 超碰免费电影| 天堂久久精品| 色五月开心五月激情五月| 久久精彩免费视频| 久久机只有这里精品| 成人网在线观看视频| 91热在线| 午夜69成人做爰视频| 激情综合色五月六月婷婷| 午夜天堂一区人妻| 天天精品视频免费观看| 亚洲激情av| 五月丁香激情综合| 夜夜爽天天日| 99熟女啪啪视频| 久久综合五月| 亚洲激情五月| 五月停停丁香| 日韩AV片| 亚洲午夜成人av电影网| 婷婷六月激情| 思思热在线播放| 99九九中文字幕视频| 天堂在线婷婷| 丁香五月天激情| sS丁香五月婷婷| 538在线精品| 婷婷亚洲色| 色婷婷AⅤ| 五月天综合在线| 欧洲精品欧洲情| 五月天丁香久久综合 | 国产欧美精品AAAAAA片| 精品网站:999WWW| 五月天日日操夜夜操 | 99色综合网| 九七色色六月丁香| 欧美99| 99秘 在线| 欧美超级视频97| 激情婷婷五月天| 成人五月天视频播放| 啪啪婷婷五月天激情| 成人片黄网站色大片免费毛片 | 亚洲精品V天堂中文字幕| 久久久精品色| 国产va在线视频| 丁香六月综合激| 丁香六月婷| 色丁香五月| 5月激情天| 五月天婷婷丁香人人操91| 婷婷导航| 五月天婷婷色色网| 操逼棍操逼| 婷婷丁香五月亚洲欧美| 99人妻碰碰碰久久久久| 99热爆在线| 色99在线视频| 99热资源在线| 思思国产99| 婷婷色播色五月五色五月天色妇| 97碰| 中文字幕,综合,91| 五月天天丁香婷婷| 精品夜夜澡人妻无码AV| 99综合免费视频| 97超碰在线免费观看| 这里只有免费的精品| 五月丁香婷婷中文| 99九九精品视频| 亚洲成人综合网在线免费观看| 久久婷婷五月天| 色婷婷欧美| 五月天开心激情综合网| www色综合| 人色五月天婷婷| 色三级色三级| 色琪琪一综合久久激情五月视频| 国产成人在线不卡AV| 久热A片| 96精品成人无码A片观看金桔| 五月丁香啪啪啪啪| 亚洲无码播放| 思思热视频在线| 中文字幕综合网| 国精产品一区一区三区有限公司杨 | 婷婷丁香综合| 色婷婷狠狠久久综合五月| 天天天操天天天爰| 婷婷色播六月无码| 爱婷婷五月| 五月天激情婷婷丁香| 婷婷亚洲五月丁香综合在线| 狠狠干2007| 婷婷五月丁香在线观看| 婷婷开心青青草| 婷婷成人综合免费视频| 激情合网婷婷| 天天精品视频在线观看视频| 激情五月天电影| 天天色天天爱天天爱天天爱y| 久久久精品色色色| 狠狠干婷婷| 67194中文字幕| 99无码精品| 五月婷婷成人| 少妇激情五月天| 丁香激情五月天| 日本一级一级一级一级| 激情AV综合| 韩日AV片| 激情六月天| 99精品国产乱码久久久人妻| 99cao婷婷| 国产探花一片区| 狠狠综合色网| 99久久精| 激情五月天色婷婷综合| 九九热婷婷| 超碰大香蕉网| 国产精品VIDEOSSEX久久发布| BBWCUCKOLD精品熟妇| 日韩草草草草草草草草草草草草| 九九色色| 婷婷五月天天aV| 五月婷婷av| 超碰97干| 精品香蕉99久久久久网站| 丁香五月停停av| 色婷成人狠干| 99久久99热| 天天影视色综合网| 九九AV在线| www.狠狠| 农村熟妇高潮精品A片| 色婷婷丁香女女| 色五月婷婷AV| 五月综合激情图片| 伊人婷婷色| 婷婷六月天| 久热A片| 激情六月丁香| 激情综合亚洲色婷婷五月| www五月| 99热只有| 99在线视频资源| 五月丁香五月激情综合色综合| www.99热这里只有精品| 激情深爱五月天| 艹天天射| 天天色官网| 丁香五月欧美成人| 九九热99精品| 开心五月综合激情综合五月| 综合激情婷婷| 久久精品噜噜噜成人A∨色欲| 国产超碰在线| AV色婷婷| 婷婷丁香综合色AV| 五月婷婷,六月激情| 久99久热| 久久日韩婷婷五月| 六月丁香五月激情婷婷| 伊人久久婷婷| 亚洲99综合| 思思re99视频在线观看| 国产乱妇乱子在线播视频播放网站| 激情综合色婷婷啪啪六月天| 男人的天堂五月丁香| 26uuu国产| 五月色婷婷中文字幕| 六月久久狠狠| 婷婷丁香成人色综合| 中文字幕婷婷五月天| 婷婷五月天综合网| 美女xx不卡| 亚洲看av的网站| 五月丁香婷婷六月| 五月天丁香久久综合 | 这里只有精品视频免费在线观看| 激情婷婷在线中文字幕| 日日日日日| 热久91| 婷婷五月综合激情小说| 成人国产欧美大片一区| 婷婷丁香五月天欧美| 99精在线| 亚洲小视频免费看| 丁香六月激情综合| 婷婷五月在线综合| 亚洲精品亚洲人成人网| 天天爽成人综合网站| 日本系列_4页_777FP| 五月婷天堂视频| 欧美激情综合色丁香婷婷五月天| 激情九月丁香婷婷| 天天色官网| 北条麻妃九九九国产精品视频| 99超在线| 久久99久久99精品,久国产,久久精品免费,99久在线,久久久久国产精品免费网站,9 | 99热九九热| 婷婷丁香色女人| 性99网站| 日本欧特黄色刺激一区影视久精品无码| 婷婷激情五月综合丁| 久久久av久av久片一区二区| 99精品在线下载| 91干婷婷| 久久免费精彩视频| 色停停香蕉视频| 欧美99热| 色情五月丁香婷婷网| 婷婷伊人网| 六月婷婷狠狠| 五月丁香六月停停停| 99日本视频| 另类视频五月天| 色噜噜狠狠色综合网| 五月天婷综合| 色五月婷婷 成人| 欧美色综合天天久久综合精品| 777精品成人a v久久| 激情五月婷婷综合网| 丁香婷婷久久综合在线| 99色| 97色在线| 99热无码首页| 九九性视频| 青草视频在线观看视频| 色香欲综合| 国产91视频| 色婷婷丁香五月天| 色婷婷婷婷五月天| 热99国产精品| 在线观看日韩12345区| 五月婷婷视频在线观看| 狠狠看狠狠| 99五丁香月| 久久东京热婷婷五月| 97五月天婷婷午夜| 99久久久久久久| 色五月丁香五月| 久久久五月婷婷| 非洲一级AV| 欧美性生交XXXXX无码小说| 都市激情五月婷婷亚洲| 97色婷| A片天天| 91超碰在线观看| 6080av| 久久98热re| 中文字幕日产A片在线看| 79精品视频在线观看,| 丁香五月花婷婷开心| 色综合久久无码| 婷婷久久五月天| 五月婷婷婷| 五月天激情综合网站| 色站9/| 丰满少妇猛烈A片免费看观看| 日日噜狠狠色综合久| 亭亭玉月丁香| 丁香五月色欲| 婷婷五月天 偷拍| 九九人人自拍| 婷婷五月综合免费在线| 中文字幕网伦射乱中文| 99热碰碰热| 丁香婷婷婷五月| 欧美激情 日韩无码 婷婷 五月天 久久婷婷丁香五月一二三 | 精品无码99| 欧美在线骚货| 99久久综合网| 五月综合丁香婷婷| 97碰碰人人视频| 久久精品一区二区三区四区| 色色色色色色色色网站| 婷婷丁香五月婷婷| 26UUU欧美| 婷婷免费无视频| 婷婷和五月天| 天天摸天天肏| 日韩精品一区二区亚洲AV观看| 骚逼视频一区2区| 丁香网站| 天天干天天拍| 丁香婷婷啪啪| 丁香六月婷婷色XXXXX| 婷婷久久精品| 精品99视频| 强伦轩人妻一区二区电影| 色色网站免费观看| 狠狠操天天日| 99热精品一区| 日韩AV色色色| 丁香五月人妻熟女| 操操操操操电影网| 五月天夜夜爱夜夜操| 丁香五月婷婷色综合基地| 九九热视频精品2| 亚洲激情在线| 伊人婷婷青青cao| 亚洲超碰在线| 成人五月天综合网| 五月天伊人av| 色欲五月天| 丁香伊人综合| 丁香五月天成人| 色婷婷综合网站| 五月天精品综合| 色五月丁香六月欧美综合| 色婷婷五月天不卡| 99在线免费观看| 婷婷色色丁香五月天| 欧美精产国品一二三区| 五月丁香香蕉| 色婷婷电影| 国产AV一区二区三区最新精品 | 婷婷精品免费久久| 激情五月激情综合网| 六月丁香久久| 亚洲99热| 亚洲AV第二区国产精品| 五月天堂色| www.粉嫩av.com| 六月婷婷狠狠| 久久这里有精品视频| 五月综合激情视频在线| 粉嫩av蜜桃av蜜臀av| 99自拍视频| 国产精产国品一二三在观看| 超碰色热| 91九色无码日韩| 天天做综合| Www.婷婷五月| 色在线99| 五月天社区| 爱iii做iiii日日| 成人中文字幕在线| 日本的α片xxxwww| 综合一本道| 婷婷的99视频网站| 无人区码一码二码三码医生系列| 成人 九九九九| 久久婷婷伊人| 久久思思热视频| 五月丁香久人妻中文| 欧美日综合| 在线观看欧美3区| 五月丁香啪啪网| 五月婷AV| 深爱激情六月天| 久久受www免费人成| 殴美激情综合网| 六月五月久久丁香| 色婷婷www| 色婷丁香91| 亚洲精品国产成人AV在线| 青青草六月丁香| 玖玖无码中文| 色婷婷AV久久| 久久亚洲网| 丁香六月综合激情| 亚洲日韩久久婷婷伊人| 香蕉久久国产AV一区二区| 色婷婷丁香五月综合| 激情伊人五月天| 丁香婷婷浪潮AV久久综合| 思思热这里只有精品视频666| 激情婷婷网| 99视频自拍| 狠狠干综合网| 天天激情| 欧美午夜乱妇午夜福利| 久久伊人大香蕉| 天天操比比| 99久久精品免费精品国产_国产精品久久久久久_国产在线|日韩_久久国产精品电影 | 中文精品在| 一级操逼内射在线视频| 国产美女无遮挡裸体毛片A片 | 婷婷六月色播| 亚洲爆乳无码精品AAA片蜜桃 | 天堂综合久| 激婷网| 天天激情综合| 99久久综合| 在线观看996精品| 五月丁香婷婷成人综合网| 日本欧美成人片AAAA| 日本片日本片祼观看网站在线看中文版网页在线看 | av中文在线| 天天日天天舔天天摸| 日韩av在线免费观看| 99精品久久久久久久久| 久久66精品| 国产精品久久久久久久久久| 99色在线视频观看| 婷婷性爱| 激情五月天婷婷| 九九99免费视频| 婷婷丁香亚洲色综合91| 久久 天天| 久热99久热| 26uuu欧美日本| 久久久9久| 日日舔夜夜操| 香蕉99网| 99热精品在这里| 五月天丁香看婷婷| 婷婷综合激情| 五月丁香婷婷综合视频| 欧美三日本三级少妇三99| 91porn一起草| 99人妻碰碰碰久久久久禁片| 日本三级日本三级三级人妇四虎| 久久婷婷久久| 色综合综合色| 五月丁香免费看| 日日夜夜狠狠婷婷色| 综合激情五月丁香| 五月丁香色五月| 丁香五月天AV在线| 亚洲天码视频www蛋播视频| 国产免费av网站| 热久精品| 五月丁香婷婷中文| 天天插天天射| 天天插天天| 五月丁香A∨在线| 五月婷婷亚洲色视频| 久久久久网站| www.夜夜操.com| 狠狠人人| 国产精品 的国产| 丁香婷婷六月| 玖玖国产视频一区| 婷婷丁香社区| 九九九九这里只有精品| 综合久久高清| 久久九九综合| 婷婷五月花西瓜| 另类 在线| 激情五月激情综合网| 天天干天天操天天上| 激情五月天婷婷色色色色色色色色色色色| 七七九色| 婷婷丁香五月天欧美| 变态另类色图| 丁香五月婷久久| 99热精品综合| 991精品在线视频| 欧洲色| 欧美婷婷成人| 综合97五月| 九九综合九色欧美狠狠| 综合色99| 久热这里只有精品66| 久久精品系列| 欧美搡BBBBB摔BBBBB| 九九这里有精品| 婷婷五月天av网| 国产三级在线播放| 五月天婷婷社区| 婷婷五月天激情基地| 大香网伊人久久综合| 久久九九99视频| 97久久人人| 五月丁香无码| 六月丁香婷婷视频综合在线观看| 色婷婷香蕉在线| 久久99精品九九久久久婷婷| 热99精品视频| 激情欧美婷婷| a色婷婷| 99国产精品白浆在线观看免费| 丁香成人五月天| 五月天婷婷六月| 91网站黄| 91av无码| 国产精产国品一二三在观看| 成人在线网| 99亚洲日韩| 九九视频这里只有精品在线播放| 色哟哟性爱av| 99欧美精品99日本精品| 99色色视频| 播五月,色五月,开心五月播放器| 婷婷综合成人五月天| 五月色婷| 丁香玖玖| 丁香青青五月天| 大色鬼综合| 玖玖婷婷五月天| 色色99| 五月婷婷丁香瑟瑟视频| 婷婷瑟五月天久久综合| 综合久久婷婷| 久久98热re| 久青草大香蕉| 爱操天堂| 久久性爱网| 欧美激情综合| 五月天成人综合| 五月丁香婷婷中文| 五月婷婷日| 色播五月婷婷五月| 婷婷色网站| 欧美丁香六月激情视频| 99'无码| 九九热只有这里精品| 色五月婷婷av| 9操在线| 五月丁香啪啪综合网| 亚洲免费av观看| 丁香六月激情国产| 精品国婬伦V无码久久久| 欧美午夜乱妇午夜福利| 日本强伦片中文字幕免费看 | 国产激情AV| 99ri久久| 欧美久久婷婷| 色综合激情| 九九激情综合| 在线另类| 丁香五月花婷婷开心| 国产伦理精品高清在线观看网站一区二区| 任你日视频| 99色综合网| 九九碰九九爱97超碰| www.99在线| 秋霞免费三级片| 亚洲性受XXXX五月丁香| www.粉嫩av.com| 99爱在线| 思思精品久久艹| 超碰色天堂| 99热99这里有免费的精品| 五月丁香琪琪| 伊人婷婷青青cao| 激情综合网,婷婷五月天| 超碰AAAAAAV| 99r这里| 天天婷婷| 女婷久久| 婷婷五月天视频| 五月婷丁香| 日本黄 色 片| txt五月激情四射网综合俺也来了| 五月丁香婷色| www.婷婷五月天| 伍月婷婷免费视频| 五月婷婷丁香六月在线| 玖玖资源站中文| 中文字幕AV网址| 99成人| 天天爱天天天射AV| 91啪啪网| www.91.com处女在线直播| 亚洲中文乱字字幕线在永久| 五月婷婷六月丁香综合| 亚洲另类婷婷综合| a网站免费观看| www,setingting| www.久久爱.com| 色婷婷色五月另类综合| 婷婷五月六月丁香综合| 视频一二区| 婷婷五月激情综合| www.久久色.com| 97人人干人人操| 五月四色婷婷| 五月天婷婷丁香人人操91| www91精品| 永久的网站AAAA| 五月丁香六月香综合激情| 国产精品视频| 亚洲精品一区中文字幕乱码| 激情宗合 激情宗合| 色色成人網| 99性色| 精品一二三区久久AAA片| 中文字幕婷婷在线| A一级操| 丁香五月五月婷婷| 五月激情啪啪| 9热在线观看| 色人五月婷婷| 久久99久久99精品免观看粉嫩| 五月丁香综合| 97久人人| www色中色综合| 99欧美| 美国不卡视频| www.狠狠狠狠| 色~性~乱~伦~噜| 亚洲一二三网| 欧美欧盟性爱网| 思思热视频在线观看| 香蕉久久av一区二区三区| 91人人网| 五月丁香婷婷五月| 中文字幕一色哟哟哟哟| www.婷婷亚洲基地| 五月丁香中文字幕| 国产毛片精品一区二区色欲黄A片| 综合激情在线视频| 亚洲va欧洲va国产va不卡| 国产精品国产成人国产三级| 婷婷久久五月丁香| 色五月激情| 7EzOBIhNq85TO| 激情五月深爱五月| 久久九九爽| 九热视频精品| av五月天婷婷丁香| 欧类av怡春院| 亚洲性爱干干| 五月天桃色深爱网| 91尤物九色在线| 五月激情综合网| cao视频,现在观看| 国产精品色一哟哟| 92久久精品一区二区| 亚洲无码另类| 亚洲AVDVD| 亚洲综合热| 亚洲精品无码A片一区二区| 夜夜www| 五月丁香啪啪啪| 九九热色视频| 99操| 色色操| 五月丁香| AV电影在线播放| 91九色精品女同系列| 色婷婷先锋| 狠狠色五月| 超碰资源在线| 超碰93在线观看| 色婷婷a v| 激情五月色婷婷| 欧美色97| 97人人看| 日本一级黄色电影| 五月天亭亭俺也| 九九Av| 狠狠插狠狠操| 五月天天天操天天爽夜夜操| 激情五月综合| 狠狠做五月婷婷| 成人综合网站| 99色一| 琪琪狠狠干| 五月天激情婷婷久久| 久久久婷婷色五月资源网| 五月丁香六月激情视频| 色五月欧美| 色999五月色| 密黄站| 国产毛片精品一区二区色欲黄A片| 成人狠狠成人狠狠成人狠狠成人狠狠| 超碰狠狠干99| 婷婷丁香激情综合色情| 操久久精| 欧美丁香婷婷五月| 视频免费精品免费精品免费精品免费精品免费精品免费精品免费99 | 天天肏视频| 五月丁色AV| 日本一級黃色一級片| 五月婷婷啪啪啪啪| www91在线| 激情五月天 婷婷| 婷婷色香六月综合激情| 婷婷五月天av小说| 九九精品亚洲| 久久这里只有精彩| 久久婷婷五月天激情新地址| 丁香五月天啪啪a日本| 97丁香五月| 五月丁香色情| 欧美成人精品老美女噜噜噜| 波多野结衣AV无码Porn| 婷婷五月天伊人| 九九久久视频| 五月婷婷丁香大陆免费| 五月婷婷色色| 五月婷天天搞视频| 亚洲色综合| 青青草伊人婷婷| 久草a片| 亚洲精品操一操、噜一噜、摸一摸、爽 | 无码地址| 偷拍99在线视频观看| 另类专区在线观看| 26uu| www.精品99| 一二线视频 另类| 99碰网站| 九九婷婷五月天影视| 日本色色网站| 久热在线中文字幕色999舞 | 久久久久久久97| 99热精品9| 9999三级片| 久久婷婷五月天激情新地址| 久久婷婷五月天激情四射| 五月天a婷婷伊人| 欧美日韩国产伦精品日韩人妻一| 99久久国产宗和精品1上映| 日婷婷久久开心| wwW天天干| 色婷婷色九月| 色综合99无码| 亚洲热综合| 色99在线| 亚洲行行色色| 日韩色色网| 超碰爱爱爱| 99综合五月免费视频色婷婷| 国产成人综合网| www.99视频| 色五月五月天| 五月丁香手机在线| 97人妻碰碰碰久久久久-最近国语高清| 婷婷五月影院| 97香蕉碰碰人妻国产欧美| 97色色色色色| 九九九成人在线视频| 亚洲精品亚洲人成人网| 97碰操| 91人久| 99热啪啪| 久久丁香五月婷婷| 五月天成人免费视频| www.色擼擼.com| 色婷婷丁香五月观看| 亚洲成人影视在线观看| 色噜噜五月丁香婷婷| www.丁香黄色五月天人与| 婷婷丁香久久| 色玖玖| 激情人妻综合| 欧美日韩aaa| 精品久久66| 五月婷婷无码专区| 婷婷国产日本欧美| 性爱先锋AV| 91婷婷丁香| 伊人色综合影院视频| 婷五月天丁香婷五月| www久久久久久久| 黄色热99| 91精品久久久久久久久久| 丁香九月激情| 五月天丁香网| 婷婷久久五月天| 五月丁香六月婷婷网| 精品激情| 婷婷五月天激情网| 丁香六月色婷婷| 无码区婷婷五月花开| 97欧美在线| 色欲影香| 丁香五月婷婷AV| 丁香五月激情网| 婷婷五月天AV在线| 99re在线视频| 久久精品9| 色欲久久综合| 99热这里只有精品2| 激情綜合W W W,激情五月天| 婷婷色五月天在线| 这里只有精品视频免费在线观看| 99热精品中文字幕| 五月丁香激情啪啪| 成人精品一区日本无码网| 成人综合网站| A片试看120分钟做受图片| 亚洲精品婷婷| 秋霞午夜理论| 婷婷丁香五月视频| 亚洲看av的网站| 亚洲五月天婷婷综合| www.五月天社区| 热99在线| 五月丁香成人| 五月天激情图片| 久久在线视频免费观看| 日韩国产在线精品| 97偷拍对白视频| 日本97久久久精品| 亚洲视频五区| 久久婷婷成人视频| 久久机只有这里精品| 狠狠狠狠狠狠狠狠| 人人操AV| 极品人妻VIDEOSSS人妻| 日本网站久久| 在线天堂9| 久久激情综合| 可以免费看AV网站| 4438激情网| 99热这里是精品| 无码碰碰| 久热一本| 五月丁香六月婷婷免费| 深爱激情五月婷婷| 97操在线视频| 香蕉97碰碰碰欧美| 大香蕉Av在线| 第2色五月婷| 婷婷五月天欧美图片在线播放电驴| 激情深爱五月天| 五月婷在线| 中文字幕欧美精品久久| 婷婷丁香97| 色色婷婷综合网| 五月天丁香成人社| 欧美S码亚洲码精品M码| 99干在线| 五月婷婷与六月丁香图片激情| www.亭亭五月天| 色色色欧美| 激情98色婷婷五| 97AV在线视频| 97色婷婷五月天| 91久热| 日本熟女啪啪| 秋霞电影一级黄| 五月婷婷综合在线视频小说| 特级西西4444www无码| 嫩草视频。| 婷婷欧美色| 欧美五月婷婷| 香蕉久久国产AV一区二区| 亚洲爱婷婷| 热99视频| 91操碰| 亚洲精品网址| 久久五月婷婷开心网| 熟女激情网| 色五月天 丁香| 六月激情婷婷色| 亚洲免费观看高清完整版AV线| 久久97久久99久久综合欧美| 五月天天堂久久| 久久五月激情| 久久久GOGO无码啪啪艺术| 色香久久| 久久久久久五月天| 婷婷久久综合| 操碰99| 六月婷婷色| 草了bav视频在线观看| 7月婷婷六月丁香| 日韩 中文 欧美| 综合九色| 日韩色情亚洲五月天婷婷| 丁香五月激情五月| 九九热大香蕉| 噜噜国产| 亚洲在线网站| 丁香五月天婷婷久久综合| 99热精品在线| 超碰97干| 桃色五月天| 91色欲综合| 66精品成人免费网站在线观看| 五月婷婷六月天| 丁香五月婷婷六月婷婷| 五月丁香啪啪综合| 色色日本欧美| 人人干人人操人人摸| 日本久久久97| 亚洲女婷婷五月基地综合久久久| 亚洲精品99| 丁香五月婷婷亚洲人| 婷婷丁香久久| 伊人干综合| 久热9| 激情五婷网| 亚洲六月色婷婷| 欧美日韩国产一区| 色九九九九| 国产精品色婷婷久久久精品| 99热久| 久久婷中文字幕| 婷婷欧美| 99热精品观看| 在线看片av| 色狠狠综合| 天天色天天操天天射| 激情小说五月天社区丁香| 婷婷综合网| 国产Va视频| 丁香五月-激情综合| 丁香五月亚洲天堂|