Python 數據分析與可視化 Day 4 - Pandas 數據篩選與排序操作

🎯 今日目標

  • 掌握 Pandas 中 groupby() 的使用方式
  • 學會使用 agg() 方法進行多個聚合
  • 掌握 pivot_table() 構建透視表
  • 結合分組與排序進行更深入的分析

🧮 一、基本分組統計(groupby)

? 分組 + 單列聚合

df.groupby("性別")["成績"].mean()

輸出(示例):

性別
女    75.2
男    72.3

? 分組 + 多列聚合

df.groupby("性別")[["成績", "是否及格"]].mean()

🔧 二、自定義聚合(agg)

? 一個字段多個聚合函數

df.groupby("性別")["成績"].agg(["mean", "max", "min", "count"])

? 多字段多個聚合函數

df.groupby("性別").agg({"成績": ["mean", "std"],"是否及格": "sum"
})

📊 三、透視表(pivot_table)

pd.pivot_table(df, values="成績", index="性別", columns="是否及格", aggfunc="mean")

可以理解為 Excel 中的“數據透視表”


🔁 四、結合分組后的排序

grouped = df.groupby("性別")["成績"].mean().reset_index()
grouped.sort_values("成績", ascending=False)

🧪 今日練習任務

繼續使用 students_cleaned.csv,完成以下練習:

  1. 按性別統計學生人數

  2. 按性別統計平均成績、最高分、最低分

  3. 按性別和是否及格雙重分組,統計各組平均成績

  4. 構建透視表,顯示是否及格和性別的成績均值交叉表

  5. 輸出平均成績最高的性別組

    import pandas as pd
    import os# 路徑設置
    input_path = "data/students_cleaned.csv"if not os.path.exists(input_path):raise FileNotFoundError("? 找不到文件:data/students_cleaned.csv,請先運行清洗腳本。")# 加載數據
    df = pd.read_csv(input_path)
    print("? 已加載清洗后的學生數據:")
    print(df.head())# 1. 按性別統計人數
    print("\n👥 每個性別的學生人數:")
    print(df["性別"].value_counts())# 2. 按性別統計平均成績、最高分、最低分
    print("\n📊 各性別的成績統計:")
    gender_stats = df.groupby("性別")["成績"].agg(["mean", "max", "min", "count"])
    print(gender_stats)# 3. 按性別 & 是否及格 進行雙重分組統計平均成績
    print("\n📊 按性別和是否及格分組的平均成績:")
    multi_group = df.groupby(["性別", "是否及格"])["成績"].mean()
    print(multi_group)# 4. 構建透視表:性別 vs 是否及格
    print("\n📊 透視表(性別 × 是否及格 → 平均成績):")
    pivot = pd.pivot_table(df, values="成績", index="性別", columns="是否及格", aggfunc="mean")
    print(pivot)# 5. 平均成績最高的性別組
    print("\n🏆 平均成績最高的性別:")
    top_group = gender_stats["mean"].idxmax()
    top_score = gender_stats["mean"].max()
    print(f"{top_group}(平均成績:{top_score:.2f})")# 6. (可選)保存統計結果
    output_path = "data/gender_group_stats.csv"
    gender_stats.to_csv(output_path, encoding="utf-8")
    print(f"\n? 性別分組統計結果已保存到 {output_path}")
    

    輸出示例:

    ? 已加載清洗后的學生數據:姓名 性別    成績  是否及格
    0  張三   男  88.0   True
    1  李四   女  73.5   True
    2  王五   男  59.0  False
    3  田七   女  73.5  False👥 每個性別的學生人數:
    女    22
    Name: 性別, dtype: int64📊 各性別的成績統計:mean   max   min  count
    性別                            
    女      73.5  73.5  73.5      273.5  88.0  59.0      2📊 按性別和是否及格分組的平均成績:
    性別  是否及格
    女   False    73.5True      73.5False    59.0True      88.0
    Name: 成績, dtype: float64📊 透視表(性別 × 是否及格 → 平均成績):
    是否及格     False  True
    性別                    
    女         73.5  73.559.0  88.0🏆 平均成績最高的性別:
    女(平均成績:73.50)? 性別分組統計結果已保存到 data/gender_group_stats.csv
    

    gender_group_stats.csv在這里插入圖片描述


📌 補充知識點

  • groupby() 默認返回的是“分組后對象”,需要用聚合函數 .mean().sum().agg() 等觸發計算
  • 你可以使用 .reset_index() 將 groupby 的結果還原為 DataFrame 格式,便于后續排序、可視化等

?? 今日總結

  • 理解并掌握了 Pandas 中 groupby 的用法
  • 學會了使用 agg() 進行自定義多重聚合
  • 學會了構建透視表并進行交叉分析
  • 初步具備了分組維度下的深層次分析能力

題外話

在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/85932.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/85932.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/85932.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

智能營銷系統對企業的應用價值

在當前快速迭代的商業環境中,企業與客戶的連接方式正經歷前所未有的深刻變革。傳統的市場策略在數據洪流和日益個性化的消費者需求面前,效能正逐步遞減。 企業決策者普遍面臨一個核心挑戰:如何在復雜多變的市場中,實現營銷資源的最…

docker鏡像中集成act工具

# 使用官方 Ubuntu 22.04 基礎鏡像 FROM ubuntu:22.04# 安裝系統依賴并清理緩存 RUN apt-get update && \apt-get install -y --no-install-recommends \curl \git \make \gcc \g \libssl-dev \pkg-config \&& \apt-get clean && \rm -rf /var/lib/apt…

Docker 與 Containerd 交互機制簡單剖析

#作者:鄧偉 文章目錄 一、背景:Docker 架構的演進之路1.1 從自研運行時到 OCI 標準化1.2 現行架構分層模型 二、核心交互組件解析2.1 通信協議:gRPC 雙向流的應用2.2 鏡像生命周期管理交互2.2.1 鏡像拉取流程(以 docker pull 為例…

C++ Vector 基礎入門操作

一、Vector初始化&#xff1a;5種常用方式 ??1. 默認構造?? 創建空容器&#xff0c;適用于后續動態添加元素&#xff1a; std::vector<int> vec; // 空vector&#xff0c;size0 2. 指定大小和初值?? 預分配空間并初始化元素&#xff1a; std::vector<int>…

社會治理創新平臺PPT(48頁)

社會治理創新背景 社會治理創新旨在加強和完善基層社會管理和服務體系&#xff0c;提升政府效能&#xff0c;強化城鄉社區自治和服務功能。自黨的十六屆四中全會提出“推進社會管理體制創新”以來&#xff0c;社會治理創新已成為政府工作的重要篇章。 社會治理創新現狀與挑戰…

論文筆記:Answering POI-Recommendation Questions using TourismReviews

2021 CIKM 1 intro 根據貝恩公司&#xff08;Bain & Company&#xff09;2019年的一份報告&#xff0c;旅行者在預訂前通常會進行33至500次網頁搜索 部分用戶會訪問超過50個旅游網站&#xff0c;三分之一的上網時間都用于與旅行相關的活動。在某些情況下&#xf…

帶約束的高斯牛頓法求解多音信號分離問題

一、信號模型與優化問題建立 1. 復信號模型 設觀測的復信號由兩個單頻復指數信號加噪聲組成&#xff1a; x [ n ] A 0 e j ( 2 π f 0 n T s ? 0 ) A 1 e j ( 2 π f 1 n T s ? 1 ) w [ n ] , n 0 , 1 , … , N ? 1 x[n] A_0 e^{j(2\pi f_0 n T_s \phi_0)} A_1 e…

Java并發編程中高效緩存設計的哲學

文章目錄 引言詳解緩存的設計和演進基于緩存存儲運算結果鎖分段散列減小鎖粒度異步化提升處理效率原子化避免重復運算小結參考引言 本文將基于并發編程和算法中經典的哈希取模、鎖分段、 異步化、原子化。這幾個核心設計理念編寫逐步推演出一個相對高效的緩存工具,希望對你有…

MATLAB的.mat文件

.mat文件是MATLAB的專有二進制數據文件格式&#xff0c;用于保存MATLAB工作空間中的變量和數據。 主要特點&#xff1a; 1. 存儲內容&#xff1a; 各種類型的變量&#xff08;數組、矩陣、結構體、單元數組等&#xff09;函數句柄、對象稀疏矩陣多維數組 2. 文件特性&#…

ICM-20948 Wake on Motion功能開發全過程(7)

接前一篇文章:ICM-20948 Wake on Motion功能開發全過程(6) 探索工作 深入探索 上一回講到,筆者在InvenSense官網上找到了實現Wake on Motion功能的指導文檔。其中主要步驟如下: 本回就來結合文檔中的步驟,詳細講解每一步。 (1)第1步 —— 初始化所有配置 注意,文檔…

Dipal D1:數字人時代的全新人機關系形態

在科技不斷突破的今天,虛擬與現實之間的界限正變得越來越模糊。Dipal D1 作為全球首款搭載2.5K曲面OLED顯示屏的3D AI數字人硬件產品,不僅是一款情感陪伴設備,更是AI、AIGC、動漫文化與情感科技深度融合下的全新交互入口。它代表著“孤獨經濟”、“創作者經濟”和“虛擬互動…

Linux離線編譯安裝nginx

Linux離線安裝nginx 1.切換到root用戶 #切換到root用戶 su - #退出root用戶 exit2.目錄操作 #切到根目錄 cd / #查看目錄 ls #切目錄 cd /home/... #到對應的目錄下解壓3.安裝Nginx 在有網絡的設備上下載以下文件&#xff1a; Nginx&#xff1a;從 nginx.org/en/download…

Qt PyQt與PySide技術-C++庫的Python綁定

Qt PyQt與PySide技術-C庫的Python綁定 一、概述二、區別于聯系1、PyQt&#xff1a;Riverbank Computing的解決方案a、發展歷程b、許可模式c、技術特點 2、PySide&#xff1a;Qt官方的Python綁定a、發展歷程b、許可模式c、技術特點 三、對比許可證功能與兼容性社區與維護其他差異…

使用.detach()代替requires=False避免計算圖錯誤

解決對一個對象多次BP更新時造成的RuntimeError: you can only change requires_grad flags of leaf variables.問題_解決對一個對象多次bp更新時造成的問題-CSDN博客 代碼中存在一個特征需要參與輔助損失的計算&#xff0c;由于需要反復進行反向傳播更新&#xff0c;計算圖容易…

linux+docker+ollama+git常用指令

1、Linux命令 新建txt文件&#xff1a;touch xxx.txt 給txt文件夾權限&#xff1a;chmod x xxx.txt 查看日志&#xff1a;tail -f xxx.log / less xxx.log 根據關鍵字查看日志&#xff1a;grep "error" 文件名 查看端口狀態&#xff1a;netstat -an|grep xxxxx 查看…

【八股消消樂】消息隊列優化—系統架構設計

&#x1f60a;你好&#xff0c;我是小航&#xff0c;一個正在變禿、變強的文藝傾年。 &#x1f514;本專欄《八股消消樂》旨在記錄個人所背的八股文&#xff0c;包括Java/Go開發、Vue開發、系統架構、大模型開發、具身智能、機器學習、深度學習、力扣算法等相關知識點&#xff…

WebSocket長連接在小程序中的實踐:消息推送與斷線重連機制設計

一、引言&#xff1a;為什么需要WebSocket長連接&#xff1f; 傳統方案的痛點&#xff1a;HTTP輪詢的低效性&#xff08;高延遲、高資源消耗&#xff09;小程序場景需求&#xff1a;實時消息推送&#xff08;如IM、直播彈幕、IoT設備狀態同步&#xff09;技術選型對比&#xf…

MySQL索引使用指南:何時該為字段添加索引?

在MySQL的性能優化中&#xff0c;索引是最常用且有效的手段之一。但“索引不是萬能藥”——盲目添加索引可能導致寫操作變慢、存儲空間浪費&#xff0c;甚至引發索引失效問題。本文將結合原理與實戰場景&#xff0c;幫你理清??“何時該用索引”??的核心判斷邏輯。 一、先理…

AI時代關鍵詞SEO優化

內容概要 在人工智能&#xff08;AI&#xff09;驅動的時代浪潮下&#xff0c;搜索引擎優化&#xff08;SEO&#xff09;正迎來深刻變革&#xff0c;關鍵詞策略已成為流量獲取的核心戰場。本文將系統剖析AI時代關鍵詞優化的前沿方法&#xff0c;涵蓋語義分析的精準研究、用戶意…

GO 語言學習 之 代碼風格

1. 命名規范 字母數字和下劃線組成 以小寫字母、大寫字母或下劃線開頭 不允許包含標點符號、運算符、空白字符&#xff08;空格、TAB、換行&#xff09;等 采用駝峰命名法 &#xff08;大駝峰、小駝峰&#xff09; 見名知義&#xff1a;命名要有實際意義&#xff0c;易讀性&am…