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

ARTICLE DETAIL

資訊詳情

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

Python數(shù)據(jù)科學(xué)入門:NumPy/Pandas/Matplotlib三件套實(shí)戰(zhàn)指南

Python數(shù)據(jù)科學(xué)入門:NumPy/Pandas/Matplotlib三件套實(shí)戰(zhàn)指南 在這行干久了經(jīng)常被新入行的朋友問同一個問題想學(xué) Python 做數(shù)據(jù)科學(xué)到底先學(xué)什么我的答案永遠(yuǎn)是固定的三件套——NumPy、Pandas、Matplotlib。這套數(shù)據(jù)科學(xué)工具鏈幾乎覆蓋了從數(shù)據(jù)讀取、清洗、計算到可視化的全流程不管你是想分析一份 Excel 表格、爬蟲拿到的一堆 JSON還是公司數(shù)據(jù)庫導(dǎo)出的 CSV最終都會落到這三個庫上。這篇文章不是官方文檔的翻譯而是按我自己的踩坑經(jīng)歷來寫的哪些概念最容易卡住新手哪些安裝坑我每年都要幫人解決一次哪些報錯其實(shí)兩句話就能處理掉。全文會從環(huán)境搭建開始帶你依次跑通 NumPy 的數(shù)組運(yùn)算、Pandas 的表格處理、Matplotlib 的圖形輸出最后用一個完整的小案例把這套工具鏈串起來。適合剛?cè)腴T Python、正準(zhǔn)備接觸數(shù)據(jù)處理的讀者也適合那些裝好了環(huán)境但不知道從哪下手的同學(xué)。1. 先搞清楚一件事這套工具鏈到底幫你省了什么1.1 為什么是這三件套而不是 Pandas 直接干到底很多人有個疑問既然 Pandas 能讀 Excel、能做統(tǒng)計、能算均值排序為什么還要單獨(dú)學(xué) NumPy這里解釋一下它們的分工。NumPy 是整個工具鏈的地基提供高性能的 ndarray 數(shù)組對象和向量化運(yùn)算能力Pandas 在 NumPy 之上構(gòu)建了帶標(biāo)簽的表格結(jié)構(gòu)也就是 Series 和 DataFrameMatplotlib 則負(fù)責(zé)把數(shù)據(jù)變成圖形。打一個可能不太嚴(yán)謹(jǐn)?shù)苤庇^的比方NumPy 像廚房里的基礎(chǔ)食材和切配標(biāo)準(zhǔn)Pandas 是按菜譜配好的半成品托盤Matplotlib 是擺盤上桌的環(huán)節(jié)。沒有 NumPy 的高效運(yùn)算打底Pandas 處理幾十萬行數(shù)據(jù)時會明顯變慢不學(xué) Matplotlib你做出來的分析結(jié)論就只能寫文字說服力直接減半。我的建議是從一開始就把這套工具鏈當(dāng)成配合關(guān)系來理解而不是替代關(guān)系。數(shù)據(jù)處理的典型節(jié)奏是讀取數(shù)據(jù) → 用 Pandas 做預(yù)處理和切片 → 需要數(shù)值計算的地方切到 NumPy → 最后把結(jié)果交給 Matplotlib 畫圖。實(shí)際操作中你會頻繁在三個庫之間來回切換所以入門階段就要有意識地建立這個協(xié)作思維。庫核心對象主要職責(zé)類比角色NumPyndarray高性能數(shù)值計算、矩陣運(yùn)算地基/食材PandasDataFrame / Series數(shù)據(jù)讀取、清洗、聚合半成品托盤MatplotlibFigure / Axes數(shù)據(jù)可視化呈現(xiàn)擺盤上桌我見過大量新手拿到一份 CSV 之后第一反應(yīng)是head()看一下然后試圖寫循環(huán)處理每一行。這在數(shù)據(jù)量小的時候沒問題一旦跑真實(shí)業(yè)務(wù)數(shù)據(jù)慢到懷疑人生。真正的思路是先想清楚數(shù)據(jù)形態(tài)再決定用哪個庫的方法一步到位解決問題。1.2 你的第一個環(huán)境體驗裝不上、裝錯位置、裝錯版本聊正題之前先說個特別現(xiàn)實(shí)的現(xiàn)狀工具鏈本身不難難點(diǎn)從安裝就開始出現(xiàn)了。我每年幫人排查環(huán)境問題花的功夫比教寫代碼還多。常見的癥狀就三種。第一種屏幕上明明顯示安裝成功import 的時候卻報 ModuleNotFoundError。第二種在命令行里 import 正常換到 VSCode 或 PyCharm 里就報錯。第三種版本太老或太新導(dǎo)致某個 API 不存在、某個參數(shù)對不上。這些問題九成是同一個根因機(jī)器上有多個 Python 環(huán)境pip 裝到了一個環(huán)境解釋器用的卻是另一個環(huán)境。舉個例子你電腦里可能同時存在官網(wǎng)下載的 Python 3.11、Microsoft Store 裝的 Python 3.9還有某個 IDE 自帶的基礎(chǔ)解釋器。它們在系統(tǒng)里是完全獨(dú)立的各有各的 site-packages 目錄。你在命令行用官網(wǎng) Python 的 pip 安裝 NumPy裝進(jìn)去的位置和 VSCode 選中的 3.9 版 Python 搜索模塊的位置根本不是一回事。理解這一點(diǎn)環(huán)境問題就解決了一半。安裝這件事不是敲命令這么簡單你需要確認(rèn)三件事當(dāng)前用的 Python 解釋器是哪個當(dāng)前環(huán)境的 pip 是哪個包到底裝到了哪里。下面我會用一整節(jié)講清楚。2. 環(huán)境搭建從零到能跑第一個 Demo重點(diǎn)說清安裝的坑2.1 先定位 Python 解釋器和 pip別急著敲安裝命令無論你用的是下載安裝包的方式還是通過 Anaconda/Miniconda第一步永遠(yuǎn)是定位解釋器路徑。在命令行里執(zhí)行# Windows 與 macOS/Linux 通用 python --version pip --version # 更進(jìn)一步確認(rèn)解釋器路徑 python -c import sys; print(sys.executable)這一步能看出機(jī)器上默認(rèn)的 Python 是哪一個。如果你分不清自己用的是哪個后面所有 我明明裝了為什么還報錯 的問題都沒法定位。對于純新手我強(qiáng)烈建議直接裝 Anaconda 或者 Miniconda然后用它的 base 環(huán)境。這不是說 conda 有多高級而是它自帶一套解釋器和包管理大幅降低環(huán)境混亂的概率。當(dāng)然如果你已經(jīng)用官網(wǎng) Python 加 VSCode 能跑通那就別折騰換工具了能用才是王道。這里特別提一下 VSCode 用戶最容易踩的坑VSCode 右下角狀態(tài)欄會顯示當(dāng)前 Python 解釋器點(diǎn)擊它就可以切換。很多命令行能跑編輯器里跑不了的怪問題都是因為右下角選中的解釋器和命令行里的不是同一個。打開命令面板輸入Python: Select Interpreter手動選一次往往比你在終端里折騰半小時都有效。2.2 用 pip 安裝三件套的正確姿勢確認(rèn)好解釋器之后安裝就很簡單了。打開命令行輸入pip install numpy pandas matplotlib如果下載速度太慢可以臨時換用國內(nèi)鏡像源。這里給一個通用寫法pip install numpy pandas matplotlib -i https://pypi.tuna.tsinghua.edu.cn/simple裝完之后不要急著跑項目先做一個冒煙測試。在命令行里輸入python -c import numpy, pandas, matplotlib; print(numpy:, numpy.__version__); print(pandas:, pandas.__version__); print(matplotlib:, matplotlib.__version__)這個命令會把三個庫的版本號一次性打印出來。如果打印成功說明三件套已經(jīng)進(jìn)入同一個解釋器。如果這步都失敗不要再繼續(xù)寫代碼先回頭處理環(huán)境。提示pip install numpy和python -m pip install numpy在大部分情況下等價但在多環(huán)境并存的機(jī)器上python -m pip能確保 pip 和當(dāng)前 python 命令綁定的是同一個環(huán)境安全性更高。如果pip本身報錯或找不到我建議改用這個寫法。2.3 離線安裝、IDE 內(nèi)安裝和 Linux 服務(wù)器安裝有些場景下機(jī)器不能聯(lián)網(wǎng)或者網(wǎng)絡(luò)策略很嚴(yán)格這時候要提前準(zhǔn)備離線安裝包。方法是在一臺能聯(lián)網(wǎng)的同平臺機(jī)器上下載 wheel 文件然后拷過去用pip install 文件名安裝。先執(zhí)行 pip download# 在一臺聯(lián)網(wǎng)機(jī)器上下載并保留依賴 pip download numpy pandas matplotlib -d ./offline_packages然后把整個文件夾拷到目標(biāo)機(jī)器再執(zhí)行pip install --no-index --find-links./offline_packages numpy pandas matplotlib注意pip download只會下載指定包不會自動把依賴全部拉全。如果目標(biāo)環(huán)境是全新的建議在聯(lián)網(wǎng)機(jī)器上用pip freeze requirements.txt先導(dǎo)出依賴清單再把所有依賴的 wheel 一起下載下來。另一個常見場景是 PyCharm 里安裝包——打開 File → Settings → Project → Python Interpreter右下角加號搜索包名安裝即可。它的本質(zhì)還是調(diào)用了這個解釋器對應(yīng)的 pip所以界面上顯示安裝成功也不代表萬事大吉你依然要確認(rèn)項目用的解釋器是哪一個。Linux 服務(wù)器上安裝時有兩個容易踩的細(xì)節(jié)一是服務(wù)器可能同時存在系統(tǒng)自帶的 Python 3 和用戶自己編譯的 Python建議用python3 -m pip install而不是直接pip install二是沒有 root 權(quán)限時給 pip 加--user參數(shù)把包裝到用戶目錄避免權(quán)限問題。裝完之后再用第 2.2 節(jié)的冒煙測試驗證一下這個習(xí)慣能幫你省掉后面一大半的 Debug 時間。3. NumPy 快速上手?jǐn)?shù)組、向量化運(yùn)算和那幾件反直覺的事3.1 ndarray 與 dtype為什么數(shù)組里每個元素類型必須一致NumPy 的核心數(shù)據(jù)結(jié)構(gòu)是 ndarray也就是 N 維數(shù)組。它比 Python 內(nèi)置列表快得多的一個重要原因就是數(shù)組里所有元素的類型必須統(tǒng)一。內(nèi)存分配是連續(xù)且緊湊的CPU 可以直接批量處理不需要像 Python 列表那樣挨個查對象的類型信息。代價就是你往一個整數(shù)數(shù)組里塞浮點(diǎn)數(shù)或字符串要么被強(qiáng)轉(zhuǎn)要么直接報錯。這種類型敏感特性就是新手最容易反直覺的第一點(diǎn)。創(chuàng)建數(shù)組非常直觀import numpy as np a np.array([1, 2, 3, 4]) # 一維數(shù)組 b np.zeros((3, 4)) # 3 行 4 列全零數(shù)組 c np.ones((2, 2)) # 2 行 2 列全一數(shù)組 d np.arange(0, 10, 2) # 從 0 到 10(不含)步長為 2 e np.linspace(0, 1, 5) # 0 到 1 之間均勻取 5 個數(shù)但要注意寫np.array([1, 2, 3.5])時數(shù)組 dtype 會被自動推斷為 float64因為整數(shù) 1 被提升成了 1.0。如果后面你想對前兩個元素做整數(shù)邏輯運(yùn)算就容易踩坑。所以建議在創(chuàng)建時就顯式指定 dtypea np.array([1, 2, 3], dtypenp.float64)檢查 dtype 最常用的方式是a.dtype。看到 dtype 是 int32 還是 float64基本就能判斷很多莫名其妙的結(jié)果是因為精度丟失還是類型轉(zhuǎn)換引起的。NumPy 提供了一整族 dtype比如 int32、int64、float32、float64還有處理字符串的U類型。剛開始不需要記全只要知道數(shù)組是有類型強(qiáng)約束的這一點(diǎn)就夠用了。3.2 切片、布爾索引與廣播機(jī)制NumPy 的切片語法和 Python 列表類似但它有一個讓新手措手不及的特性切片返回的是視圖不是副本。也就是說執(zhí)行b a[1:3]之后你修改 b 的元素a 也會跟著變。這是因為 NumPy 為了性能默認(rèn)不復(fù)制底層數(shù)據(jù)只有顯式調(diào)用.copy()才會復(fù)制。解決這個問題的方法很簡單需要獨(dú)立數(shù)據(jù)時就寫.copy()不需要時就老實(shí)使用視圖以節(jié)省內(nèi)存。我建議新手養(yǎng)成一個習(xí)慣凡是不確定后面會不會改動切片結(jié)果的場景都補(bǔ)一個.copy()安全第一。這個細(xì)節(jié)在寫大型數(shù)據(jù)處理的腳本時特別重要因為視圖的副作用往往不會在出錯的第一時間暴露而是隔了很久才從某個詭異的數(shù)值里體現(xiàn)出來。布爾索引是 NumPy 的高效過濾手段data np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) print(data[data 5]) # 輸出所有大于 5 的元素廣播機(jī)制是 NumPy 最強(qiáng)大的特性之一。簡單說當(dāng)兩個數(shù)組形狀不完全一致時NumPy 會按規(guī)則自動擴(kuò)展較小的數(shù)組去匹配較大的數(shù)組。比如arr 1會把 1 廣播到每個元素上(3, 1)和(1, 4)相加會先擴(kuò)展成(3, 4)。我見過不少人在需要按列歸一化時很自然地寫了data - data.mean(axis0)卻得到了一堆看起來完全錯誤的結(jié)果。問題通常出在形狀對齊上data.mean(axis0)是一維的(n,)減去它時 NumPy 沿著行廣播結(jié)果就亂了。遇到這種情況先打印兩個數(shù)組的 shape再用reshape或keepdimsTrue顯式對齊維度。3.3 mgrid 的用法與常用聚合函數(shù)有人專門搜索numpy庫mgrid方法說明這是很多人學(xué)習(xí)時卡住的地方之一。mgrid 的作用是生成一個用于網(wǎng)格計算的密集坐標(biāo)數(shù)組。比如我們要生成一個 3x3 網(wǎng)格的 x 坐標(biāo)和 y 坐標(biāo)x, y np.mgrid[0:3, 0:3] # x 是縱向重復(fù) 3 行y 是橫向重復(fù) 3 列 print(x) # [[0 1 2] # [0 1 2] # [0 1 2]] print(y) # [[0 0 0] # [1 1 1] # [2 2 2]]它在畫二維圖、做數(shù)值模擬時非常常見。比如你想對平面上每個點(diǎn)計算z f(x, y)先用 mgrid 生成坐標(biāo)網(wǎng)格再對整個網(wǎng)格做向量化計算比嵌套兩層 for 循環(huán)快得多代碼也更簡潔。很多人第一次看到 mgrid 的輸出會愣住因為它是把坐標(biāo)拆開而不是給你一組現(xiàn)成的坐標(biāo)點(diǎn)。多打印幾次輸出理解維度方向就好。聚合函數(shù)方面最常用的是sum、mean、max、min、std。注意axis參數(shù)的語義axis0是沿著行方向壓縮計算每一列的結(jié)果axis1是沿著列方向壓縮計算每一行的結(jié)果。這個方向問題初學(xué)者幾乎必錯一次我也只能提醒你多打印結(jié)果驗證。判斷方法很簡單結(jié)果數(shù)組的維度比原數(shù)組少一維你只要看輸出形狀是 (n,) 還是 (,n) 就能反推出方向。4. Pandas 快速上手從表格思維到數(shù)據(jù)處理思維4.1 Series 和 DataFrame兩個核心對象的直覺理解Pandas 的兩個核心對象經(jīng)常被新同學(xué)混淆。簡單理解Series 是一列帶標(biāo)簽的數(shù)據(jù)DataFrame 是由多個 Series 組成的二維表格。大多數(shù)時候你直接操作的是 DataFrame但 DataFrame 里的每一列本質(zhì)上是 Series。如果你在數(shù)據(jù)處理時寫df.iterrows()去逐行循環(huán)處理大概率是沒理解 Pandas 的向量化能力。大部分需求可以用整列操作完成速度和代碼可讀性都遠(yuǎn)好于循環(huán)。比如計算兩列的比值直接寫df[A] / df[B]就行不需要一行一行來。這個思維方式的轉(zhuǎn)變是很多人從會寫 Python到會用 Pandas的分水嶺。創(chuàng)建 DataFrame 最常用的方式是從字典創(chuàng)建和從文件讀取import pandas as pd # 從字典創(chuàng)建key 是列名value 是列數(shù)據(jù) df pd.DataFrame({ 姓名: [張三, 李四, 王五], 年齡: [25, 30, 35], 城市: [北京, 上海, 廣州] })創(chuàng)建完之后用df.shape看行列數(shù)用df.columns看列名。新手容易把字典的 key 順序和 DataFrame 的列順序搞混實(shí)際上 Pandas 會按傳入順序保留不需要擔(dān)心字典在 Python 3.7 是有序的這個前提。4.2 讀取 Excel/CSV 與數(shù)據(jù)類型轉(zhuǎn)換的關(guān)鍵細(xì)節(jié)pd.read_excel()和pd.read_csv()是處理數(shù)據(jù)的起點(diǎn)。讀 CSV 時我強(qiáng)烈建議先試encodingutf-8遇到亂碼就換成encodinggbk這是國內(nèi)導(dǎo)出數(shù)據(jù)的常見編碼。讀 Excel 時注意sheet_name參數(shù)不傳默認(rèn)讀第一個 sheet也可以傳多個 sheet 名返回一個字典。讀取之后第一件事不是直接 print而是先用三個方法檢查數(shù)據(jù)形態(tài)df.head() # 看前 5 行 df.info() # 看列名、非空值數(shù)量、dtype df.describe() # 看數(shù)值列的統(tǒng)計描述df.info()是我個人最常用的因為它的輸出會直接告訴你每一列是什么 dtype、有沒有缺失值這比肉眼翻表格高效太多。類型轉(zhuǎn)換是 Pandas 踩坑重災(zāi)區(qū)。最常見的場景是年齡列看起來是數(shù)字實(shí)際上是字符串。比如讀 Excel 時把某一列讀成了 object一求均值直接報錯。轉(zhuǎn)換的標(biāo)準(zhǔn)寫法是df[年齡] pd.to_numeric(df[年齡], errorscoerce) df[日期] pd.to_datetime(df[日期], errorscoerce)errorscoerce的作用是把無法轉(zhuǎn)換的值變?yōu)?NaN而不是直接拋異常斷開整個流程。這個參數(shù)非常重要能讓你在數(shù)據(jù)質(zhì)量差的時候先保留流程后面再統(tǒng)一處理缺失值。另一個高頻需求是把字符串類型的浮點(diǎn)數(shù)列轉(zhuǎn)換為真正的浮點(diǎn)列方法同樣是pd.to_numeric。關(guān)于讀寫文件還有一個經(jīng)常被忽略的導(dǎo)出細(xì)節(jié)df.to_excel(output.xlsx, indexFalse)時記得加indexFalse否則會把行索引寫進(jìn) Excel 的第一列給自己制造多余數(shù)據(jù)。寫 CSV 給 Excel 用時建議df.to_csv(output.csv, indexFalse, encodingutf-8-sig)utf-8-sig能避免 Excel 打開中文亂碼。4.3 數(shù)據(jù)清洗三板斧缺失值、重復(fù)值、異常值數(shù)據(jù)清洗是 Pandas 使用頻率最高的場景。我的經(jīng)驗是把它拆成三板斧。第一板斧是缺失值。先看缺失情況分布df.isnull().sum()然后決定策略刪除df.dropna()還是填充df.fillna()。刪除時注意參數(shù)subset可以指定只在某些列缺失時才刪填充時常用df[列名].fillna(df[列名].mean())或者用前向填充ffill()。我的一般原則是關(guān)鍵業(yè)務(wù)字段缺失優(yōu)先填充非關(guān)鍵字段缺失可以考慮刪除時間序列數(shù)據(jù)優(yōu)先前向填充因為用未來值去填過去值在邏輯上是說不通的。第二板斧是重復(fù)值。df.duplicated()可以判斷哪些行重復(fù)df.drop_duplicates()刪除重復(fù)行。注意默認(rèn)是按整行判斷如果想按某一列判斷重復(fù)必須傳subset[列名]。比如會員表里一個人可能出現(xiàn)多行你只想保留每人最近一條記錄就要按會員 ID 去重。第三板斧是異常值。最簡單快速的是通過分位數(shù)過濾q1 df[金額].quantile(0.25) q3 df[金額].quantile(0.75) iqr q3 - q1 df_filtered df[(df[金額] q1 - 1.5 * iqr) (df[金額] q3 1.5 * iqr)]這套 IQR 方法不是萬能的但對入門階段處理臟數(shù)據(jù)非常實(shí)用。清洗過后再用df.info()對比一下行數(shù)和非空值就能知道清洗有沒有生效。很多時候數(shù)據(jù)清洗不是一次性做完的而是檢查 → 清洗 → 再檢查的循環(huán)你在第 2 次檢查時可能又會發(fā)現(xiàn)新的問題。5. Matplotlib 快速上手畫出第一張能看的數(shù)據(jù)圖5.1 繪圖基礎(chǔ)流程與 Figure/Axes 的層級關(guān)系Matplotlib 的 API 經(jīng)過多年演進(jìn)很多老教程還在用plt.plot()直接畫雖然也能出圖但理解 Figure畫布和 Axes坐標(biāo)系的層級關(guān)系才能讓后續(xù)的布局調(diào)整不那么痛苦。Figure 是整個圖形窗口Axes 是圖上的一個坐標(biāo)系。一張 Figure 上可以有多個 Axes比如并排幾張子圖每個 Axes 有自己的 x 軸、y 軸和數(shù)據(jù)。最基礎(chǔ)的繪圖流程是import matplotlib.pyplot as plt x [1, 2, 3, 4, 5] y [3, 5, 7, 9, 11] fig, ax plt.subplots(figsize(6, 4)) ax.plot(x, y, markero, linestyle--, colorb, label示例數(shù)據(jù)) ax.set_xlabel(X 軸) ax.set_ylabel(Y 軸) ax.set_title(我的第一張 Matplotlib 圖表) ax.legend() plt.show()這里的fig, ax plt.subplots()是顯式創(chuàng)建 Figure 和 Axes 對象后續(xù)所有配置都通過ax完成。對比老式寫法plt.xlabel()這個方式更清晰也方便在一張畫布里創(chuàng)建多個子圖時統(tǒng)一管理。如果你想畫并排的兩張子圖核心邏輯是一樣的fig, (ax1, ax2) plt.subplots(1, 2, figsize(10, 4)) ax1.plot(x, y) ax2.bar(x, y) plt.show()subplots(1, 2)返回(fig, axs)axs是一個包含兩個 Axes 對象的數(shù)組展開賦值給(ax1, ax2)就行。后面你分別調(diào)用 ax1 和 ax2 的方法兩張圖就在同一張畫布里各占一半。5.2 常見圖表選型與中文顯示問題該選什么圖我的習(xí)慣是看趨勢用折線圖ax.plot看分布用直方圖ax.hist或箱線圖ax.boxplot看占比用餅圖ax.pie比較各類別數(shù)值用柱狀圖ax.bar。新手最容易犯的錯是用柱狀圖去表達(dá)時間序列趨勢這會讓讀者很難看清連續(xù)變化換成折線圖馬上自然很多。幾乎每個用 Matplotlib 的人都會碰到中文顯示問題。默認(rèn)字體里沒有中文字體出來的圖全是方框。解決方法要先指定支持中文的字體import matplotlib.pyplot as plt plt.rcParams[font.sans-serif] [SimHei, Microsoft YaHei, PingFang SC] plt.rcParams[axes.unicode_minus] False # 解決負(fù)號顯示為方框的問題把這兩行放在腳本開頭大部分場景的中文顯示問題都能解決。如果系統(tǒng)里確實(shí)沒有這些字體就需要手動安裝中文字體并重新構(gòu)建字體緩存過程比較繁瑣。我建議入門階段直接采用這個配置如果不行再考慮裝字體。另外直方圖和箱線圖很適合快速查看數(shù)據(jù)分布。比如我們要檢查銷售金額是否呈偏態(tài)分布import matplotlib.pyplot as plt import numpy as np data np.random.gamma(2, 2, 500) fig, (ax1, ax2) plt.subplots(1, 2, figsize(10, 4)) ax1.hist(data, bins30, edgecolorblack) ax1.set_title(直方圖) ax2.boxplot(data) ax2.set_title(箱線圖) plt.show()箱線圖里的中位數(shù)線、四分位邊界和離群點(diǎn)一眼就能看出數(shù)據(jù)分布的形狀。配合前面第 4.3 節(jié)講的 IQR 異常值過濾你會發(fā)現(xiàn) Matplotlib 和 Pandas 的聯(lián)動非常緊密。6. 高頻報錯的完整排查鏈路別再靠猜很多人在社區(qū)發(fā)求助帖時直接貼個報錯截圖連錯誤信息和環(huán)境都沒說清楚。這里我按幾個高頻報錯挨個拆解一遍排查過程目的是幫你建立一條排查思路而不是背答案。以后再遇到類似報錯至少知道從哪里下手。6.1AttributeError: module pandas has no attribute core的真實(shí)原因這個報錯看起來很嚇人其實(shí)是典型的名字遮蔽或版本不一致問題。排查鏈路是這樣的先確認(rèn)代碼里有沒有一個文件叫pandas.py或者某個目錄叫pandas/。如果有Python 在導(dǎo)入import pandas時會優(yōu)先導(dǎo)入你本地這個文件而不是真正的 Pandas 庫。這時候你訪問pandas.core時就報出module pandas has no attribute core。確認(rèn)方式是在報錯前先打印模塊路徑import pandas print(pandas.__file__)如果打印出來的路徑不是 site-packages 下的 pandas 目錄而是你項目里的某個路徑基本就是實(shí)錘了。解決辦法是把本地文件改名刪除當(dāng)前目錄下的pandas.py或pandas/文件夾然后徹底重啟解釋器。這類問題在真實(shí)項目里其實(shí)不少見因為很多人喜歡把腳本命名為pandas.py或者numpy.py來做練習(xí)這個習(xí)慣非常危險。另一個原因是 Pandas 版本極老或極新導(dǎo)致內(nèi)部結(jié)構(gòu)變動?,F(xiàn)在的 Pandas 已經(jīng)把pandas.core視為內(nèi)部實(shí)現(xiàn)不推薦直接訪問。如果你在舊項目里看到pandas.core.frame.DataFrame這類寫法升級后可能就找不到了。解決辦法是改用公開 API比如直接import pandas as pd然后pd.DataFrame。6.2UserWarning: failed to initialize numpy: no module named numpy與版本沖突這個報錯常見于裝完某個庫之后出現(xiàn)。表面上是沒找到 numpy但很可能是環(huán)境里有多個 Python或者 numpy 沒有裝到正確的環(huán)境中。排查鏈路如下先執(zhí)行python -c import numpy; print(numpy.__version__)看當(dāng)前解釋器能不能導(dǎo)入 numpy。如果能導(dǎo)入說明當(dāng)前解釋器沒問題報錯來自另一個解釋器。這時候要看是誰在報警告經(jīng)常是某個 IDE 或軟件內(nèi)置的 Python 在掃描環(huán)境、初始化擴(kuò)展時掃描到了一個不完整的環(huán)境。如果不能導(dǎo)入說明只是裝錯了位置。用pip show numpy查看包裝到了哪里用python -c import sys; print(sys.executable)確認(rèn)當(dāng)前解釋器路徑兩者對比把包裝到正確的解釋器下即可。另外還要注意 NumPy 和 Pandas/Matplotlib 存在版本兼容區(qū)間。如果一起安裝時沒注意版本可能出現(xiàn)舊版編譯產(chǎn)物和新版運(yùn)行時不匹配報錯形式五花八門。最簡單穩(wěn)妥的修復(fù)方式是新建一個干凈的虛擬環(huán)境然后重新安裝一次最新穩(wěn)定版python -m venv myenv # Windows: myenv\Scripts\activate macOS/Linux: source myenv/bin/activate pip install numpy pandas matplotlib虛擬環(huán)境的好處是每個項目獨(dú)立一套依賴不會和系統(tǒng)全局環(huán)境互相污染。我以前也偷懶不建虛擬環(huán)境直到某次把公司服務(wù)器的 Python 環(huán)境搞壞了才老實(shí)了一輩子。6.3 請安裝 matplotlib 以顯示圖標(biāo)這類提示是怎么來的有時候你在跑某個第三方庫或 GUI 應(yīng)用時會看到類似 請安裝 matplotlib 以顯示圖標(biāo) 或者 pip install matplotlib 的提示。這種情況通常是你要用到的某個功能依賴 matplotlib 作為后端來繪圖或渲染圖標(biāo)但當(dāng)前環(huán)境里沒有裝。我在實(shí)際調(diào)試這類問題時總是先去看錯誤發(fā)生的位置而不是直接執(zhí)行它提示的命令。因為很多項目里的報錯實(shí)際上是因為本機(jī)有其他依賴沒滿足提示安裝 matplotlib 只是順帶一提。最穩(wěn)妥的方案依然是在項目虛擬環(huán)境里用pip install matplotlib裝上然后重新跑一下。如果你是離線環(huán)境就回到前面第 2.3 節(jié)的那套離線安裝流程去聯(lián)網(wǎng)機(jī)器下載 wheel 包拷貝過來后手動安裝注意同時把依賴一并處理好。一個容易遺漏的細(xì)節(jié)是離線安裝后也要記得做一次import matplotlib冒煙測試因為 wheel 包之間有依賴順序要求少一個依賴哪怕安裝了也會在運(yùn)行時才報錯。7. 綜合實(shí)戰(zhàn)從 Excel 到一張完整圖表的完整數(shù)據(jù)鏈路7.1 案例背景與完整代碼到這里三個庫各自的用法都過了一遍。我用一個完整的小案例把它們串起來目標(biāo)是把一份訂單表數(shù)據(jù)讀取進(jìn)來做清洗和計算最后畫出一張銷售額趨勢圖。假設(shè)當(dāng)前目錄下有一個orders.xlsx包含三列日期、銷售金額、銷售數(shù)量。其中日期列有部分缺失銷售金額列有部分字符串類型混入。下面是完整代碼import pandas as pd import numpy as np import matplotlib.pyplot as plt # 1. 讀取數(shù)據(jù) df pd.read_excel(orders.xlsx) # 2. 查看數(shù)據(jù)結(jié)構(gòu)和缺失情況 print(df.info()) print(df.isnull().sum()) # 3. 數(shù)據(jù)清洗日期轉(zhuǎn)成 datetime金額轉(zhuǎn)成數(shù)值缺失值填充處理 df[日期] pd.to_datetime(df[日期], errorscoerce) df[銷售金額] pd.to_numeric(df[銷售金額], errorscoerce) df df.dropna(subset[日期]) # 刪掉日期缺失的行 df[銷售金額] df[銷售金額].fillna(df[銷售金額].median()) # 金額缺失用中位數(shù)填充 # 4. 用 NumPy 計算一些聚合統(tǒng)計 amounts df[銷售金額].to_numpy(dtypenp.float64) print(總銷售額:, amounts.sum()) print(單筆平均金額:, amounts.mean()) print(最大單筆金額:, amounts.max()) # 5. 按月份匯總銷售額 df[月份] df[日期].dt.to_period(M) monthly df.groupby(月份)[銷售金額].sum() # 6. 導(dǎo)出清洗后的數(shù)據(jù) df.to_excel(orders_cleaned.xlsx, indexFalse) # 7. 繪圖 plt.rcParams[font.sans-serif] [SimHei, Microsoft YaHei, PingFang SC] plt.rcParams[axes.unicode_minus] False fig, ax plt.subplots(figsize(10, 5)) ax.plot(monthly.index.astype(str), monthly.values, markero, linestyle-) ax.set_xlabel(月份) ax.set_ylabel(銷售額) ax.set_title(各月銷售額趨勢) plt.tight_layout() plt.show()7.2 每一行代碼背后的關(guān)鍵細(xì)節(jié)這段代碼看著不復(fù)雜但里面每一個選擇背后都有原因。讀取 Excel 后第一件事不是繪圖而是df.info()看結(jié)構(gòu)因為清洗前你永遠(yuǎn)不知道數(shù)據(jù)有多臟。日期轉(zhuǎn) datetime 失敗的行會被置為 NaT所以dropna(subset[日期])刪除的只是真正無效的行。金額列混入字符串時pd.to_numeric(..., errorscoerce)會把非數(shù)字變成 NaN后面用中位數(shù)填充避免異常值對結(jié)果沖擊過大。用 NumPy 計算聚合統(tǒng)計其實(shí)用 Pandas 的df[銷售金額].sum()也能直接做但這里特意演示了df[銷售金額].to_numpy(dtypenp.float64)的轉(zhuǎn)換方式。這在實(shí)際工作中非常常見Pandas 做完了數(shù)據(jù)整理要把列轉(zhuǎn)成 NumPy 數(shù)組去做更底層的計算或者傳入機(jī)器學(xué)習(xí)模型。月份分組用的是df[日期].dt.to_period(M)這個操作可以很方便地按月份提取周期對象再groupby就能得到月度匯總。這里不用 NumPy因為groupby本來就是 Pandas 的強(qiáng)項。繪圖時我把monthly.index轉(zhuǎn)成字符串再傳給 x 軸避免了 Matplotlib 對 PeriodIndex 的一些兼容問題。這個細(xì)節(jié)在舊版 Matplotlib 上特別有用新版雖然也能直接處理但顯式轉(zhuǎn)字符串更保險。跑完這段代碼你會看到一張月度銷售額趨勢折線圖同時當(dāng)前目錄下多了一個orders_cleaned.xlsx。整個過程就是這套數(shù)據(jù)科學(xué)工具鏈最典型的協(xié)作方式Pandas 清理和匯總數(shù)據(jù)NumPy 做底層數(shù)值計算Matplotlib 把結(jié)論可視化。三個庫各用一點(diǎn)數(shù)據(jù)鏈路就走通了。7.3 數(shù)據(jù)源換成爬蟲 JSON 和導(dǎo)出結(jié)果如果讀入的不是 Excel而是爬蟲拿到的 JSON 列表流程也沒有太大區(qū)別。把列表轉(zhuǎn)成 DataFrame 后后面的清洗、分組、繪圖流程完全一致。import pandas as pd # 假設(shè)爬蟲返回的是一個包含多個 dict 的列表 data [ {日期: 2024-01-05, 銷售金額: 120.0}, {日期: 2024-01-12, 銷售金額: 85}, {日期: None, 銷售金額: 90} ] df pd.json_normalize(data) # 把嵌套結(jié)構(gòu)展開成 DataFrame df[銷售金額] pd.to_numeric(df[銷售金額], errorscoerce) print(df)pd.json_normalize()能把嵌套的 JSON 結(jié)構(gòu)拍平成表格這對于爬蟲數(shù)據(jù)特別友好。工具鏈的優(yōu)勢就在這里數(shù)據(jù)源可以變處理管線不用推翻重寫。如果你還需要把結(jié)果導(dǎo)出到 Excel 給同事看一行df.to_excel(output.xlsx, indexFalse)就搞定。注意在寫入帶有中文字符的 CSV 時用encodingutf-8-sig在寫入 Excel 時記得關(guān)閉索引這些前面都提過做一遍就會形成肌肉記憶。最后分享一個我個人很受用的經(jīng)驗入門這套工具鏈不要一上來就背 API而是準(zhǔn)備一個自己的最小數(shù)據(jù)集。我當(dāng)年就是用一份幾百行的歷史銷售表反復(fù)練手日期解析、缺失值、字符串混入、中文圖例顯示所有問題一次性踩了個遍。想真正記住 NumPy、Pandas、Matplotlib 這些東西靠的不是看文檔而是拿一份真實(shí)數(shù)據(jù)從頭到尾跑通一遍清洗、計算、繪圖全流程。等你跑完兩三遍后再回頭看會發(fā)現(xiàn)所有當(dāng)初覺得玄乎的概念其實(shí)都是手邊最樸素的工具而已。如果實(shí)戰(zhàn)中遇到環(huán)境又亂了多打印sys.executable、pandas.__file__、numpy.__version__這三個值它們能把絕大多數(shù)環(huán)境錯配問題直接暴露出來。這套工具鏈本身并不難難的是在龐大生態(tài)里找到一條清晰的入門路徑希望這篇內(nèi)容能幫你少走一段彎路。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
69色婷婷| 日本久久超碰| 亚洲中文av| 99久热这里有精品| 欧美大香蕉视频| 天天射影院| 五月婷婷中文字幕| 亚洲综合色丁香五月天| 色婷婷五月天亚洲| 九九色综合网| 中文字幕av亚洲| 乱岳熟女50岁| 五月天婷婷激情| 99精品久久久久久久| 天天干,天天日| 99热无码| 久久久久人妻精选| 99视频精品全部免费 在线| 国产综合婷婷| 婷婷丁香91| 国产做爰视频免费播放| 超碰99热| 五月天开心网| 99久久免费性爱视频`| 国产精品美女久久久久AV超清| 天天操天天干天天日| 新99思思视频| 丁香五月大香蕉| 51精品国自产在线| 婷婷久久综合久| 六月婷婷视频| 五月激情丁香六月狠狠干| 色呦呦在线| 深爱激情丁香| 丁香五月婷婷网| 狠狠狠色激情综合适合| 狠狠五月天| 五月丁香六月婷婷a v| 久久五月婷婷电影| 天天天久久久| 婷婷丁香五| 操操人人| 色色综合网站| 国产色丁香| 日本久久性| 密视AV综合在线| av首页在线| 欧美电影在线观看| 婷婷五月激情基地| 色域五月丁香| 五月色综合| 99在热线免费视频| 丁香综合婷婷五月天| 亚州精品久久久久AV无码| 99在线观看免费精品视频| 啪啪综合| AV激情五月| 亚洲无码成人| 涩综合在线 | 五月婷婷丁香综合| 美女天天爽| 婷婷99狠狠躁天天| 777久久精品| 深爱婷婷基地| 久久精彩视频99| 91黄色五月天视频| 色约约视频一区二区三区四区五区| 丁香五月婷中字在线| 亚洲精品久久久久久久久久飞鱼| 91色噜噜狠狠狠狠色综合| 1010日日无码| 五月综合视频| 六月丁香五月婷婷| 玩熟女五十AV一二三区| 五月婷婷亚洲综合在线| 夜夜 操无码| 99热在线观看| 婷婷激情欧美| 婷婷激情人妻| 色情成人五月天| 丁香六月婷婷久久综合| 潘金莲AAAAAAAAAA| 99大香蕉| 亚洲99在线视频| 激情小说婷婷五月| 91丁香五月| 色五月综合网| 美女久久天堂| 大地资源色婷婷视频在线| 五月婷婷色| 日本婷婷激情四射中文字幕在线观看| 婷婷综合亚洲| 狠狠色激情综合| 淫荡综合网| 五月丁香六月欧美综合网站| 色婷婷丁香五月| 搡BBBB搡BBB搡18| 婷婷五月天综合久久日美女| 婷婷综合网| www,超碰| 狠狠干 狠狠操| 久久婷婷五月天综合| 婷婷基地五月色| 日操五月婷| 五月丁香无码| 久久婷婷五月| 色五月婷婷青娱乐| 深爱激情网婷婷| 丁香六月婷婷姐网| 色婷婷综合网站| 99热草草| 色色综合成人网| 色一情一乱一乱91Av| 色婷婷亚洲| 婷婷丁香五月精品| 九九AV在线| 国产真实乱对白精彩| 丁香玖玖视频大全| 亚洲色婷婷网站| 欧州色色| 成人在线观看国产| 热99国产精品| 天天操综合网| 欧美黄色一级录像| 国产VA播放| 日日狠狠久久偷偷四色综合免费 | 日日干日日| 丁香色情五月综合激情| 婷婷 亚洲图片 丁香| 亚洲婷婷欧美婷婷| 久久九九99视频| 婷婷五月电影院| 这里只有免费的精品| 超碰超碰在线| 日韩美女羞羞网站在线观看| 天天色域综合网| 日本激情91| 国产精品美女久久久久AV超清| 91疯狂操操操操| 一區四區歐美日韓| 97色色色| 日本3级片偷拍网站| 五月天婷婷永久免费视频| 97碰久久| 欧美99视频| 岛国av电影网站| 亚洲综合五月天婷婷| 一起草日本| 管管補管管紱| 少妇AB又爽又紧无码网站| 久久9热| 丁香五月婷婷偷拍| 五月天婷婷影院影院观看| 色九九综合色| 欧美婷婷色五月| 成人国产欧美大片一区| 六月婷婷七月丁香| 婷婷丁香六月天激情四射网| 操操国产| 成人av在线网站| 九月丁香婷婷综合| 亚洲va欧洲va国产va不卡| 少妇人妻偷人精品无码视频新浪| 欧美黑人大吊| 九九色影院| 婷婷欧美激情综合| www.99热这里只有精品| 99ri在线| 丁香午夜天| 激情av在线| 九九热视| 最新AV在线观看| 亚洲色爱综合| 一起肏在线视频| 色色色色av色色色色| 在线综合亚洲欧美65| 久久99最新| 开心五月网 | 激情五月婷婷六月丁香| 9 1大香蕉| 婷婷激情网五月天| 天天网曰日曰夜夜综合永久免费| 五月天天久久香| 国产超碰av| 丁香五月综合网亚洲综合欧美狠狠 | 天天干夜夜谢| 中文久久久人妻| 激情深爱五月天| 99精品激情| 大香蕉人妻| 色碰碰| 思思热在线| 九九九九九九综合| 色婷婷九月| 97AV在线视频| 色婷婷丁香五月| 情欲综合网| AA片在线观看视频在线播放| 午夜做爱影院| 一月婷婷色色| 九九色精品| 欧美视频在线观看噜噜| 色婷婷狠狠久久YY| 思思99热| 99热亚洲精品66| 九九热视频精品999| 丁香五月婷婷骚视屏| 激情综合九| 月婷婷婷婷五月| 五月丁香激| 91人人操人人| 色大综合| www.91.com黄| 韩国中文字幕91| 色高清无码视频| 婷婷热色| 亚洲激情在线| 26uuu亚洲欧美| 日韩久综合| 97AV在线视频| 婷婷五月天论坛| 五月婷九九草| 能看的av| 久久激情网| 婷婷精品在线| 丁香五月婷中字在线| 精品亚洲VA网站| 玖玖99免费视频| 婷婷大香蕉| 亚洲午夜精品久久久久久人妖| 婷婷丁香六月天| 久草五月天电影网| 国产亚洲网站在线| av免费在线看不卡无毒| 婷婷亚洲色| 婷婷丁香第一页| 中文字幕精品推荐免费在线观| 婷婷色啪| 色女伊人| 丁香五月激情婷婷激情| 色色激情五月天| 超极99精品| 丁香六月婷婷色播| 激情色情五月天| 久操人妻| 97自拍99| 新激情五月天| 超碰久热| 国产亚洲在线观看| 婷婷五月天综合网| 有哪些A片网站| 激情视频婷婷五月花| 九九中文色色| 中文字幕视频色婷婷| 99九九99九九九视频精彩| 丁香婷婷激情五月色| 91在线日本| 无码少妇高潮喷水A片免费| 日本色五月| 婷婷激情六月综合| 99久久66| 97干97色| 操操国产| 探花搜索结果 - 黄上黄| 99热在线观看| 久久九九热视频| 色五月天在线观看| 婷婷色丁香六月| 免費亭亭成人| 麻豆AV一区二区三区| 欧美色色网| 五月天激情站| 丁香六月婷婷开心| 五月丁香啪。| 日本少妇AA一级特黄大片| 激情深爱五月天| 五月婷婷激情性爱| 中文字幕,综合,91| www色五月天| 久久99热这里| 日本英国美国欧美亚洲国产精亚洲日韩精品在线观看 | 久久久999精品| 婷婷五月伦理网站| 婷婷五月天欧美图片在线播放电驴| 久久九九怡红院| 五月天婷婷激情在线色图| 夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂亚洲亚洲亚洲亚洲亚洲亚洲亚洲亚洲色 | 欧美啄木乌丝袜人妻系列| 99精品视频免费在线播放| 91人人超碰在线| 五月婷九月| 思思久久99热只有频精品66| BBWCUCKOLD精品熟妇| 五月婷婷六月色| 色婷久久| 天天干狠狠| 色停停香蕉视频| 99re热在线视频观看| 99热这里只有精品16| 色婷婷影音| 天天日夜夜草进麻麻的子宫| 伊人五月网| xxx综合在线| 亚洲色色爱| 天天干夜夜操A片| 五月婷婷综合热| 婷婷六月丁香在线| 五月综合亚洲| 五月激情另类| 六月色国内综合| 婷婷五月免费在线| 丁香五月婷婷色偷偷| 五月开心深爱激情网| 五月丁查人人| 久久亚洲无码| 婷婷综合久久| 双性美人被调教到喷水A片| 国产毛片精品一区二区色欲黄A片 极品人妻VIDEOSSS人妻 | 91丁香色| 日本免费91| 91久久综合亚洲鲁鲁五月天| 深爱激情网五月| 色八月婷婷| 亚洲天天免费| 五月草影视| 热99在线| 开心激情五月天网| 婷婷五月天99综合网站| 五月婷婷七月丁香| 丁香五月AV在线| 啪啪婷婷五月天激情| 99人这里只有精品| 婷婷色五月天在线| 天天日夜夜拍| 婷婷视频在线碰| 精品国产a| 美女91一起草| 伊人春天av| 五月婷丁香在线视频在线| 五月天婷婷在线啪啪视频| www.俺去也com| 激情婷婷五月| 婷婷伊人綜合中文字幕| 97人人操人人操人人操人人| www久久99| 天天噜天天爱| 日日.c| 97久久草草超级碰碰碰| 色综合久久久无码中文字幕999| 久久五月天 91| 久久综合激情| 婷婷五月天干干| 久久婷婷色综合| 91久久久久久| 大香蕉婷婷婷| 六月色日韩| 亚洲六月婷| 婷婷色在线视频| 色婷婷影视| 美女久久天堂| 青青.com| 丁香五月天婷婷中文字幕| 五月丁香色综合| 久久综合香蕉国产国产蜜臀AV| 激情綜合網址| 色播丁香婷婷五月激情| 永久精品| 色色五月天丁香婷婷| 五月丁香少妇A| 99色在线观看视频| 91人妻人人操| 综合五月天亚洲婷婷| 九九婷婷五月天| 国产激情综合五月久久| 激情五月综合第一页| 加勒比色色| 超碰色综合| 2018夜夜草| 五月间天堂综合| 男人天堂亚洲综合| 婷婷久久综合久| 九九精品婷| 777久久综合视频| 亚洲婷婷五月天激情| 六月婷婷激情| 九九婷婷综合| 激情五月久久| 久久久久久9热不雅视频| 久久黄A片| 色色无码| 丁香六月婷婷色XXXXX| 五月天婷五月天综合网小说首页-五月天激激婷婷大综合,婷婷亚洲综合五月天小说 | 婷婷九九| www99精品亚| 久久99jiu9| 啪啪色区| 日日操日日撸| 人妻六月天| 国产精品色色666| 日本色99| 91视频精品99| 久久AV电影| 国产精品久久久爽爽爽麻豆色哟哟| 五月丁香无码| 99九九玖玖| 激情综合五月丁香六月婷婷| 天天舔天天摸天天射| 五月色综合| 五月婷在线观看| 五月婷婷六月激情| 亚洲AV无码影院| 情趣视频66| aaa久久久| 97色五月天| 99色视频| 99热99日…..| 久久 视频这里只有精总| 五月婷婷欧洲| 天天综合色| 久久婷婷五月综合伊人| 婷婷久久免费看| 色九综合| 久操香蕉| 91九色首页| 色婷婷丁香五月综合| 亚欧州精品视频| 91人人人人人| 久久九九99| 亚洲人妻一区二区| 丁香五月天偷拍| 开心久久网婷婷| 五月天伊人| 五月天天视频| 六月丁香综合网| 婷婷色丁香五月| 亚洲99精品九九在线| 色色色99| 99在热线免费视频| 丁香婷婷在线| 五月色情网| 成人 视频免费观看网站| 高潮毛片又色又爽免费| 91狠狠色丁香婷婷综合久久| 久久99久久99精品免观看粉嫩| 啪啪激情网站| 777久久综合视频| enecarbon-materials.com污K127封锁请涟系@wip1688 | www99热| 丁香激情婷婷网| 电影蜘蛛女| 九热精品| 97色97干| 亚洲顶级VA在线观看-高清完整版在线影院观看-S022AV | 色综合色| 六月色色| 9久精品视频| 婷婷五月天精品| 九九婷婷五月天| 91精品久久久久久77777| 九九热99免费视频| 九九热婷婷| 99网| 久久怡红院| 99er精品视频| 丁香九月婷婷色| 婷婷五月天免费| 丁香六月视频| hd五月婷婷在线| 婷婷五月天播| 综合激情五月四射婷婷| 五月丁香婷色| 五月天激情国产综合AV| 日韩六十路91性交电影| 色亭亭五月天网扯| 国精产品久久| av一区免费看| 亚洲av网址| 99色在线视频观看| AV在线免费播放| 久久综合无| 99热丁香| 丁香婷婷精品视频| 深爱激情五月天婷婷网| 五月婷婷丁香五月婷婷| 激情五月视频在线婷婷| 亚洲婷婷激情综合激情999精品| 婷婷五月天播播| 99久在线精品99re5热视频| 26UUU精品一区二区| 综合久久99| 婷婷综合网| 97操碰视频| 香蕉久久国产AV一区二区| 综合激情五月丁香| 少妇人妻人伦A片| 丁香五月婷婷激情蜜桃| 日本不卡中文字幕| 丁香九月婷婷| ZpRSw| 大香蕉久久久| 一本久久亚洲五月婷婷| 亚洲婷婷乱乱丁香| 国产97色在线 | 日韩| 五月天另类视频| 国产做爰视频免费播放| 日韩美一级毛卡片| 婷婷丁香69精华| 色五月在线| 久热播这里只有精品| 色婷丨日丨天丨综合久久| 精品国产a| 亚洲激情四射| 久久婷婷影院| 五月丁香综合激情网| 亚洲色网络| 久香草视频在线观看| 2015在线中文字幕| 一级操逼大片| 九九色色| jiZZdr| www色色com| 激情丁香五月天| 欧美性色五月天| xxxx五月| 激情婷婷五月天伊人在线观看| 97精品自拍| 久久九九re热| 日韩婷久| 五月丁香九九| 亚州激情九月| www.1024久久| 97涩婷婷婷婷基地| 久久99三级在线视频| 亚洲xx在线| 97在线观视频免费观看| 第四色在线观看| .精品久久久麻豆国产精品| 99热.com| 婷婷五月在线视频| 亚洲色另类| 激情五月婷婷综合| 久久综合九九| 色狠狠色噜噜AV天堂五区| 久热中文字幕| 激情婷婷六月天| 婷色五月| 色婷婷丁香五月| 丁香五月天激情| 婷婷五月天成人| 91久久久久久久久18| 丁香五月天之婷婷影院| 国产高潮A片羞羞视频涩涩| 色色色综合| 99色在线观看| 欧美槡BBBB槡BBB少妇| 久久桃花网色婷婷| 超碰永久在线| 日本色久| 色色五月天婷婷| 欧美激情 日韩无码 婷婷 五月天| 五月天激情播播网| 婷婷六月天精品| 操操操操操电影网| 99热综合| 色情婷婷| 欧洲第一无人区观看| 婷婷五月综合国产精品| 黄色91在线观看| 久久色9| 国产 亚洲 在线| 成人羞羞啪啪 全 视频| 九九热短视频在线观看| 九九热在线精品| 国産精品| 婷婷色影音天| www.色九月| 色5月婷婷| 婷丁香五月天| 综合在线色婷婷| www色五月| 99热精品在线观看| 99热国产婷婷| 五月天色狠狠| 婷婷激情五月天在线| 激情综合五| 能看的AV| 无码人妻一区二区一牛影视| 色五月成人| 婷婷黄色五月天在线视频| 丁香五月婷婷影院| 亚洲综合五月天婷婷| 67194中文在线| 色在线99| 人人爽人人爽人人爽人人爽| 99视频35精品视频在线观看| 黄桃AV无码免费一区二区三区| 大香蕉天堂| 色婷婷视频| 日韩人妻AV在线| 激情四射五月天| 深爱五月激情综合| 欧美97色| 绿色小导航AV| 色五月婷婷大| 婷婷五月天成人网站| 天天撸夜夜爽| 9久久久久| 九九操屄| 五月婷丁香| 亚洲激情婷婷| 亚洲精品无AMM毛片| 婷婷综合亚洲| 开心五月深爱五月丁香五月激情五月| 日韩性视频| 婷婷五月激情在线| 久久黄色网扯| 99a级片| 婷婷五月丁香青青草在线| 久草五月婷婷| 婷婷五月丁香手机在线视频| 国产美女无遮挡裸体毛片A片 | 九九激情视频| 日本A片一区| 五月婷婷,六月丁香| 五月丁婷婷| 任你日热视频| 久久伊人大香蕉| 天天天天色天天天天天干| www.色9| 精品一二三区久久AAA片| 丁香五月天论坛| 五月丁香婷婷爱激情综合网| 99在线免费视频播放| 人人九色| 婷婷婷婷色| 五月天天天综合| 激情超碰网| 亚洲无AV在线中文字幕| 97婷婷丁香| 五月丁香六月情婷婷久久| 久操人| 99这里只有精品| 九九在线视频| 激情五月婷婷中文字幕| 熟妇人妻中文字幕无码老熟妇| 成人视频婷婷| 亚洲成人色五月婷婷综合| 97人人做| 婷婷激情五月天小说| 在线理论片| 六月婷婷中文字幕| 婷婷草| 婷婷久久五月天亚洲欧美国产日韩在线观看| 激情五月天福利| 国产性爱在线| 色婷五月天| 丁香五月欧美成人| www.五月天色色.com| 天天色综合网1| 激情婷婷五月天网址| www.久久久.com| 97色在线观看视频| 婷婷五月激情综合啪啪| 亚洲丁香花五月丁香花| 亚洲乱码日产精品BD| 99热这里只有精品5| 97色在线观看视频| 亚洲熟女色| 人人爱摸视频| 激情五月综合| 99视频热| www开心激情网| 五月亚洲激情| 丁香婷婷免费| 综合热无码| 夜夜做天天爽| 丁香五月婷婷成人色区| 少妇口诉沐足视频播放器网址| 丁香五月六月久久综合 | 深爱婷婷丁香五月激情| 久久婷婷五月天激情唯美| 婷婷永久在线| 婷婷六月插屄激情| 亚洲综合网激情小说| 99热在线中文字幕| 韩国久久少妇视屏| 色丁香影院| 婷婷五月情| 特级西西4444www无码| 五月花免费视频| 少妇人妻人伦A片| 99热| 九九香蕉网| 婷婷五月天激情小说| www.婷婷六月天| 开心五月婷婷激情| 亚洲无码影音| 97自拍99| 91九色精品熟女内射| 五月激情六月| 久久婷婷五月天激情唯美| 久久激情五月天| 丁香五月色五月| 五月婷精品| 六月丁香网| 天天干天天干天天干| 久久精品一区二区三区四区| 国产在线激情视频| 免费啪啪啪网站| 在线视频另类| 色综合色欲综合天天免费| 九九热手机在线视频| 色播五月婷婷| 亚洲a色| 96精品成人无码A片观看金桔| 日韩久久系列| 亚洲激情视频在线观看| AV 3P| 丁香五月婷婷在线观看| www.色婷婷.com| 欧美性爱丁香五月| 69久久99精品久久久久婷婷| 第四色婷婷最爱| 天天爽天天摸天天爱| 午夜天堂啪啪| 色综合网页| 99久热在线精品| 97久久香草精品视频| EEUSS鲁片一区二区三区| 99只有精品| 日本色超碰| 七七九九色色| 亚洲五月天另类小说图片| 日本婷婷| 超碰99资源站| 天天射综合网天天插| 另类图片五月天| 91久久| 亚洲五月婷婷在线| 六月婷欧美| 婷婷干| 九九热视频在线观看| 欧美婷婷成人| 99惹精品视频| 26uuu欧美日韩| 无码一级片| av免费在线看不卡无毒| 色综合色色色| 色五月激情综合| 91久操| 五月色丁香婷婷综合| 快乐婷婷五月天| 狠狠爱婷婷爱| 丁香青青五月天| 小视频aaa久久久| 色热久| 欧美碰碰| 国产片色| 黄色热99| 韩国情人在线电视剧免费观看高清版全集| 婷婷五月天激情五月天深爱五月天| 69精品人人人人| 九热免费视频| 五月色网| av不卡网站| 五月天堂婷婷| 人妻操逼视频| 六月婷久久| 天天摸天天舔| 9久9久| 丁香五月激情在线| 欧美十二区| va婷婷在线免费观看| 夜夜爽天天爽| 91精品久久久久久久| 91人人操人人爱| 色婷婷色| 色五月天成人| 99狠狠操一| 思思久久精品| 日韩婷久| 亚洲欧美丁香五月天亚洲欧美| Www.久久| www.99热. com这里只有精品| 午夜不卡久久精品无码免费| 欧美狠狠一在草| 亚洲中文字幕av| 久久欧洲久久| 色婷婷香蕉| 色噜噜狠狠色综合日日免费| 丁香婷婷综合激情五月色| 美女天天久久| 色五月情| 婷婷娱乐丁香综合网| 成人草榴视频| 丁香五月无码| 狠狠色婷婷丁香五月| 亚洲精品婷婷| 狠狠第四色| 曰曰久久| 操笔无码| 亚州在线中文字幕| 99热12| 中文字幕婷婷在线| 日韩色五月| 五月丁香中文婷婷中文| 色99在线视频| 亚洲国产色婷婷| av亚洲国产小电影| 五月天综合婷婷| 亚洲xx网| 欧美色五月| 久久人人人人妻| 热99热久| 久久婷婷伊人| 97婷婷丁香五月天激情图片| 青青久久五月| 大香蕉伊人99| 婷婷基地成人五月天| 婷婷五月丁香综合网| 四月丁香五月婷婷久久| 亚韩在线视频| 亚洲三A| 婷婷五月免费视频| 丁香婷婷黄网站| 婷婷久久大香蕉| 久久这里只有精品16| 激情综合色婷婷啪啪六月天| 色五月婷婷丁香五月| A片试看120分钟做受图片| 五月天激情国产综合婷婷| 色碰碰| 欧美日本日韩| 色噜噜五月天| 五月丁香亭亭成人电影| 7777精品伊人久久久大香线蕉最新版| 激情AV| 五月丁香婷婷伊人| 久久九色| 美女被操一区二区| 人妻久久久| 久久五月天黄色五月天色网址| 岛国午夜视频| 欧美交换配乱吟粗大25P| 五月天激情无码| 天天做天天要天天爱| 9999综合99综合人| 色色色999| 深爱婷婷网| 色色色综合视频| 婷婷色色丁香| 五月婷婷爽爽爽| 五月丁香福利| 五月婷婷激情综合网 | 国产人人操| 99在线观看| 丁香五月天激情免费在线观看AV777| 丁香激惜男女| 亚洲一级AV在线免费播放| 欧美成人精品A片免费一区99| 99∨VTV| 深爱五月天 开心网| 在线成人网址| 99热色婷婷| 狠狠精品干练久久久无码中文字幕| 97碰超级人人看| 天天摸人人摸| 色97综合婷婷天天色| 亚洲综合99| 日韩AV中文字幕在线| 五月天婷婷丁香| 综合在线丁香五月| 91久久99久久91熟女精品| 色婷婷综合在线| 丁香性爱在线视频| 亚洲亚洲人成综合网络| 丁香五月电影| 这里只有精品视频| 久久国产色| 五月天停停成人网| 欧美综合在线五月天色婷婷| 操操操www.com| 五月婷婷精品| 久久丁香九| av操B网站| 九月丁香很很色| 国产成人精品一区二三区熟女在线| 激情五月丁香五月| 欧美色久| 99爱爱网| 日本美女上人| 日韩超碰在线| 久99在线视频| www,超碰| 丁香五月欧美午夜视频| 99激情视频| 激情五月五月婷婷| 日日干日日| 99热都是精品| 日日干日日s| 亚洲综合婷婷| 六月婷婷网站| 激情五月少妇| 五月婷婷激情综合视频| 天天插插天天| 婷婷五月香蕉| 97日在线视频| 婷婷无码视频| 99热18| 中文字幕+乱码+中文字幕在线观看| 性爱AV天堂| 久久3p| 五月丁香| 欧美天天爽| 中文字幕日韩无码制服诱或| 丁香五月天欧美| 丁香五月色欲| 丁香六月婷婷五月婷婷| 播播网色播播| 激情久久久| 色五月亚洲| 五月丁香综合色婷婷| Y11111111111少妇电影院| 激情五月婷婷啪啪| 亚洲成人高清在线| 99er这里只有精品| 就去涩涩丁香五月天| 五月天,激情四射,婷婷频道| 婷婷欧美激情综合| 五月婷婷av| 天天插操| 九九在线视频| 六月丁丁香| 尤物一区二区| 久久五月婷婷视频| 色五月大香蕉| 五月天成人手机在线视频| 五月天激情国产综合婷婷| 99a级片| 欧美搡BBBBB摔BBBBB| 丁香五月玖玖| av在线播放网址| 亚州激情在线视频| 婷婷久久亚洲| 天天日天天色| 黄色av网站在线免费播放| 五月综合激情| 五月婷婷久久内射| 午夜爱爱网站| 北京熟妇搡BBBB搡BBBB| 色级婷婷| 第二色AⅤ| 日日.c| 91一起操| 大香伊人婷婷| 五月婷婷久久开心网| 无码任你操| 极品少妇XXXX精品少妇偷拍| 亚洲激情Av| 日本99热| 五月丁香六月在线| 中文字幕成人| 亚洲天堂大香蕉| 丁香花五月天| 97av在线视频| 婷婷狠狠97| 欧美槡BBBB槡BBB少妇| 成人免费网站免费看| 思思99精品视频在线观看| 久久伊人五月天| 亚洲综合五月天| 色色色色色综合| 久久综合热17c| 免费在线观看欧美激情xx小视频| 五月婷婷啪啪| 日本在线视频播放91| 五月丁香六月婷婷a v| 五月丁香六月在线| 97在线/日本| 97丁香花五月天激情小说| 99ri在线观看视频| 91n啪啪| 影音先锋人妻出差| 99视频| 99热国产精品| 激情综合网五月天| 在线播放 精品| 538在线| av九九| 国产性爱一级| 五月天婷婷丁香| 久久婷婷六月综合国际| 五月天亚洲最大成人| 色99网| 9超碰在线| 国产精品久久7777777精品无码| 天天干夜晚夜操| 大香蕉五月丁香| 人人摸人人澡人人| 五月天婷婷亚洲| 成人免费在线电影| 亚洲激情婷婷| 中文字幕91,综合| 日韩人妻操逼视频| 亚洲精品白浆高清久久久久久| 欧洲婷婷五月天| 久久97| 99re热精品视频国| 色噜噜综合网| 婷婷色色五月| 97人人射| 天天操夜夜啊| 五月天婷婷丁香| 狠狠狠婷婷五月综合| 另类天堂| 国产精品色婷婷99久久精品| 久久多色| 99精品国产在热久久婷婷| 亚洲无码11| 91狠狠色色丁香婷婷综合久久| 啪啪综合| 97操碰视频| 婷婷亚洲综合| 五月香婷婷| 色色婷婷五月天| 99免费成人网| 中国女人做爰A片| 亚洲激情高潮| 婷婷五月丁香亚洲| 岛国av电影网站| 任你爽视频| 婷婷五月天堂| 国产免费一区二区在线A片视频| 久久婷婷成人视频| 亚洲字幕AV一区二区三区四区 | 任我肏视频精品| 色五月五月天色婷婷色五月| 99伊人性爱在线影院| 五月天激情图片| 小视频aaa久久久| 精品一区久热| 激情五月开心五月丁香五月| www99久久| 丁香五月播播| 色情久久久| 大香蕉婷婷婷| 超碰色综合| 97久久五月丁香婷婷| 激情五月天婷婷丁香| 爱之国产色情综合| 亚洲激情四射色| 久久玖玖综合| 久久视这里只有精品| 99久久超级| 激情五月婷婷| 玖玖在线资源视频| 五月停停大香蕉| 啪啪婷婷五月天激情| www.婷婷网| 97偷拍对白视频| 婷婷九月亚洲| 亚洲mm色| 成人网页在线观看| 色五月综合| 欧美激情综合色综合| 九九AV在线| 涩综合婷婷| 99热这里只有精彩| 久久草大香蕉| 丁香97综合| 可以看的AV| 天天插天天插天天插天天插 | 伊人婷婷五月| 激情五月婷婷色综合| 狠狠干综合| 激情综合网婷婷久久| 超碰免费电影| 色色色999| 99re鈥哸鈥唙| 婷婷色啪| 香蕉AV777XXX色综合一区| 婷婷五月色情| 深爱开心五月天| 五月丁香另类图片| 日本久久激情| 99视频只有精品| 天干夜夜操| 婷婷激情五月天色| 婷婷久久五月天丁香| 亚洲字幕AV一区二区三区四区| 五月婷婷视频| 狠狠干五码| 激情五月天色色| 久久久潮喷-久久久九九-成人AV| 色婷婷狠狠| 亚洲免费婷婷| 亚洲AAA| 天天天天天天天干| 久久久精品99| 国产成人AV| 六月激情婷婷| 亚洲激情免费视频观看| 狠狠夜夜五月丁香| 五月天婷婷免费| 日韩伊人大香蕉| 免费看欧美成人A片无码| 久久狠狠干| 深爱激情五月天婷婷网| av婷婷丁香 六月| 欧美色图天堂网色| www,99热在线观看| 九九在线视频| 91chinese在线| 人妻久久久久久| 另类综合婷婷五月天欧美视频| 丁香亭亭久久| 久久综合丁香| 日韩久综合| 99在线视频观看| 色婷网| www,天天干| 久久伊人五月天| 天天日天天爽| 丁香五月婷综合网| 亚洲成人乱码av网站| 2020夜夜操天天爽| 久热这里只有精品性色AV| 九月影院義母在线播放| 亚洲六月色婷婷| 丁香综合久久| 婷婷五月天天激情| 色就色94欧美setu| 精品久9| 香蕉影院色| 丁香六月天婷婷色| 五月激情综合网| 亚洲中文字幕在线观看| 天天干,天天日| 丁香五月婷婷啪啪| 国产亚洲精品AAAAAAA片| 激情五月色婷婷| 六月色婷婷| 五月婷婷丁香六月| 亚洲欧洲另类图片| 一级片操逼视频| 九九九九精品精| 亚洲网站观看视频| 日韩在线观看网址| 狠狠色色色| 激情又色又爽又黄的A片| 久久久天堂国产精品女人| 五月丁香| 日韩一级淫乱片一区二区三区| av操B网站| 涩丁香91| 免费在线a| 九九色院| 99re视频在线播放| 欧美日韩99| 丁香五月婷婷性爱| 九九精品在线网| 怡红院视频| 久热这里只有精品视频免费观看| 婷婷综合五月天亚洲综合| 天天搞天天爽| 五月婷婷色综图片| 五月天色婷婷综合| 91男女视频在线观看| 亚洲殴洲精品Av在线| 秋霞成人毛片一级A片| 色综合色色| 色婷婷在线视频综合| 五月天俺去也| 色色色热热热| 丁香六月啪| 嫩草AV久久伊人妇女超级A| 丁香五月婷婷网| 99re在线视频| 天天色天天| 99热97美女| www.久久综合| tingtingjiqingwuyue| renre人人操国产超碰在线| 婷婷网五月天| 五月婷婷性爱| 婷婷中文综合网| 国产97色在线 | 日韩| 色丁香五月天射婷婷爱婷婷| 九色色| 婷婷深爱五月丁香网| 婷婷久久五月| WWW、99热| av激情在线| 色色色综合视频| 噜噜狠狠色综合久| 日韩黄在免| 《丁香激情综合久久伊人久久》影视在线观看 -高清预告手机免费播放 -三妹影院 | 丁香六月婷婷激情| 丁香五月激情啪| 操逼在线视频| 丁香婷婷色五月激情综合| 九九热在线观看视频| 69热91天堂| 日本婷久久| 久久婷婷五月草视频在线播放| 啪到高潮激情丁香五月| 狠狠干狠狠色| 五月婷视频| 九九热99re8热免费观看| 天天摸天天舔天天天天爽| 99操99| 色欲五月婷婷| 久草xx性爱视频| 狠狠干综合| 婷婷丁香五月基地| 五月天色播网| 色玖玖综合网| 综合日本婷婷| 99这里的视频都是精品| 免费99情趣网视频| 五月丁香婷婷综合| 九九九九九九九九九九九九九九九九九九九在线视频 | 五月丁香亚洲综合| 色色色99| 五月婷婷色播| 五月天停停成人网| 亚洲V国产V欧美V久久久久久| 亚洲av网站| 日本操B视频| 大香蕉福利导航| PORNY九色9l自拍视频成人| 天天五月天综合网址| 热久久这里只有精品| 激情婷婷在线中文字幕| jiZZdr| 欧美碰碰碰| xfplayav在线| 超碰在线国产| 欧美色色色色色| 欧美日韩成人高清在线| 国产黄色av| 亚洲天堂AAA| 人人爱操| 亚洲另类婷婷五月丁香在线播放| 99色在线| 婷婷五月丁香超碰| 99re最新地址| 久久婷鲁| 色丁香影院| 婷婷五月激情黄色| 伊人五月综合网| 久久色五月天激情小说| 国外亚洲成AV人片在线观看| 激情欧美婷五月| 播五月开心婷婷欧美综合| 婷婷丁香综合色AV| 九九婷婷五月天| 超碰免费人人肏| 97色色在线视频| 成人龟情网丁香五月| 情欲综合网| 国产毛片精品一区二区色欲黄A片| 丁香色播五月天| 丰满人妻妇伦又伦精品国产| 久色成人| 五月丁香色停停啪啪啪|