數據科學和機器學習的“看家兵器”——pandas模塊 之五

目錄

  4.5 pandas 高級數據處理與分析

  一、課程目標

  二、對數據表格進行處理

  (一)行列轉置

  (二)將數據表轉換為樹形結構

  三、數據表的拼接

  (一)merge () 函數的運用

  (二)concat () 函數的運用

  (三)append () 函數的運用

  四、對數據表格的同級運算

  五、計算數據表格中數值的分布情況

  六、對數據表中的相關性進行計算

  七、對數據進行分類匯總

  八、創建數據透視表

  九、課程回顧和小結

  十、課后練習


 

  4.5 pandas 高級數據處理與分析

  一、課程目標

  本次課程主要圍繞 pandas 的高級數據處理與分析功能展開,通過理論講解和案例分析,讓學員掌握數據轉置、表格拼接、統計運算、相關性分析、分類匯總、數據透視表等高級操作技巧。學員學完本次課程后,能夠熟練使用 pandas 進行復雜的數據處理和深度數據分析。

  二、對數據表格進行處理

  在數據分析過程中,我們經常需要對數據表格進行各種處理,包括行列轉置和轉換為樹形結構。

  (一)行列轉置

  行列轉置是將數據表格的行和列互換位置。

import pandas as pd
import numpy as np# 創建示例數據
np.random.seed(42)
data = {'姓名': ['張三', '李四', '王五', '趙六'],'語文': [85, 90, 78, 88],'數學': [92, 87, 95, 80],'英語': [88, 91, 85, 92]
}
df = pd.DataFrame(data)
df = df.set_index('姓名')print("原始數據:")
print(df)# 行列轉置
df_transposed = df.T
print("\n轉置后的數據:")
print(df_transposed)# 恢復索引
df_transposed = df_transposed.reset_index()
df_transposed = df_transposed.rename(columns={'index': '科目'})
print("\n恢復索引后的數據:")
print(df_transposed)

  這個案例展示了如何使用T屬性對數據表格進行行列轉置,以及如何恢復索引并修改列名。

  (二)將數據表轉換為樹形結構

  將數據表轉換為樹形結構可以更直觀地展示數據之間的層次關系。

# 創建樹形結構數據
tree_data = {'id': [1, 2, 3, 4, 5, 6, 7],'parent_id': [None, 1, 1, 2, 2, 3, 3],'name': ['A', 'B', 'C', 'D', 'E', 'F', 'G'],'value': [10, 20, 30, 40, 50, 60, 70]
}
df_tree = pd.DataFrame(tree_data)print("原始樹形結構數據:")
print(df_tree)# 定義構建樹形結構的函數
def build_tree(df, parent_id=None):tree = []children = df[df['parent_id'] == parent_id]for _, child in children.iterrows():node = {'id': child['id'],'name': child['name'],'value': child['value'],'children': build_tree(df, child['id'])}tree.append(node)return tree# 構建樹形結構
tree = build_tree(df_tree)
print("\n轉換后的樹形結構:")
import json
print(json.dumps(tree, indent=2, ensure_ascii=False))

  這個案例展示了如何將數據表轉換為樹形結構。通過遞歸函數,可以將具有父子關系的數據轉換為嵌套的字典列表形式,便于進行樹形結構的展示和分析。

  三、數據表的拼接

  在數據分析過程中,我們經常需要將多個數據表拼接在一起。pandas 提供了多種拼接數據表的方法。

  (一)merge () 函數的運用

  merge()函數用于根據一個或多個鍵將不同 DataFrame 中的行連接起來。

# 創建示例數據
df1 = pd.DataFrame({'學號': [1001, 1002, 1003, 1004],'姓名': ['張三', '李四', '王五', '趙六'],'班級': ['一班', '二班', '一班', '二班']
})df2 = pd.DataFrame({'學號': [1001, 1002, 1003, 1005],'成績': [85, 90, 78, 88]
})print("df1:")
print(df1)
print("\ndf2:")
print(df2)# 內連接
df_inner = pd.merge(df1, df2, on='學號', how='inner')
print("\n內連接結果:")
print(df_inner)# 左連接
df_left = pd.merge(df1, df2, on='學號', how='left')
print("\n左連接結果:")
print(df_left)# 右連接
df_right = pd.merge(df1, df2, on='學號

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

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

相關文章

組合問題(去重)

40. 組合總和 II - 力扣&#xff08;LeetCode&#xff09; class Solution { private:vector<vector<int>>result;vector<int>path;void backtracking(vector<int>& candidates, int target,int sum,int startIndex,vector<bool>&used)…

論QT6多線程技術

前言 以前我多線程使用傳統的繼承qthread重寫run()或者繼承qrunable類把對象丟到線程池解決。經過昨天的面試讓我了解到新的技術&#xff0c;我之前看到過只不過沒有詳細的去了解movetotread技術&#xff0c;這個技術是qt5推出的&#xff0c;qt6還在延續使用 代碼結構 以下是…

VTEP是什么

VTEP&#xff08;VXLAN Tunnel Endpoint&#xff0c;VXLAN 隧道端點&#xff09;是 VXLAN&#xff08;Virtual Extensible LAN&#xff09;網絡中的關鍵組件&#xff0c;用于處理 VXLAN 流量的封裝和解封裝。以下以可讀的 Markdown 格式詳細解釋 VTEP 的定義、功能、實現方式以…

antdv3 Tabs.TabPane 右上角增加一個角標Badge

1、Tabs官方說明 Ant Design Vue — An enterprise-class UI components based on Ant Design and Vue.js 2、Badge角標官方效果圖 Ant Design Vue — An enterprise-class UI components based on Ant Design and Vue.js 3、Tabs.TabPane要實現的效果 4、代碼 <Tabs v-m…

淺析 Spring 啟動過程:從源碼到核心方法

淺析 Spring 啟動過程&#xff1a;從源碼到核心方法 一、Spring 注解方式啟動類 Demo二、Spring 啟動過程源碼解析?AnnotationConfigApplicationContext構造函數refresh()方法詳解 三、refresh()的核心方法/步驟obtainFreshBeanFactory() - 獲取Bean工廠prepareBeanFactory(be…

貝葉斯優化Transformer融合支持向量機多變量回歸預測,附相關性氣泡圖、散點密度圖,Matlab實現

貝葉斯優化Transformer融合支持向量機多變量回歸預測&#xff0c;附相關性氣泡圖、散點密度圖&#xff0c;Matlab實現 目錄 貝葉斯優化Transformer融合支持向量機多變量回歸預測&#xff0c;附相關性氣泡圖、散點密度圖&#xff0c;Matlab實現效果一覽基本介紹程序設計參考資料…

智慧化系統安全分析報告

智慧化系統的安全背景與現狀 一、政策法規背景 &#xff08;一&#xff09;全球主要國家/地區政策對比 地區政策名稱核心內容實施時間特點中國《生成式人工智能服務管理暫行辦法》明確服務提供者責任&#xff0c;強調數據合法、隱私保護&#xff0c;禁止生成違法內容2023年8…

【學習筆記】點云自動化聚類簡要總結

聚類是將將具有相似特征劃分為相同點集的操作。 基于空間鄰近性的方法 核心思想&#xff1a;依據點的空間距離進行分組 歐式聚類&#xff08;DBSCAN&#xff0c;KD-tree) 原理&#xff1a;基于半徑搜索和最小點數擴展簇。 優點&#xff1a;適應不規則形狀&#xff0c;無需預…

全志F10c200開發筆記——移植uboot

相關資料&#xff1a; &#xff08;二&#xff09;uboot移植--從零開始自制linux掌上電腦&#xff08;F1C200S)&#xff1c;嵌入式項目&#xff1e;-CSDN博客 F1C200S挖坑日記&#xff08;3&#xff09;——Uboot編譯篇_f1c200s uboot-CSDN博客 一、安裝編譯器 Linaro Rele…

常見WEB漏洞----暴力破解

什么是暴力破解 暴力破解 (Brue Force) 是一種攻擊方法 (窮舉法)&#xff0c;簡稱為“爆破”&#xff0c;黑客通過反復猜解和實驗&#xff0c;旨在以暴力手段登入、訪問目標主機獲取服務&#xff0c;破壞系統安全&#xff0c;其屬于 ATT&CK技術中的一種&#xff0c;常利用…

ARM A64 LDR指令

ARM A64 LDR指令 1 LDR (immediate)1.1 Post-index1.2 Pre-index1.3 Unsigned offset 2 LDR (literal)3 LDR (register)4 其他LDR指令變體4.1 LDRB (immediate)4.1.1 Post-index4.1.2 Pre-index4.1.3 Unsigned offset 4.2 LDRB (register)4.3 LDRH (immediate)4.3.1 Post-index…

2.安卓逆向2-adb指令

免責聲明&#xff1a;內容僅供學習參考&#xff0c;請合法利用知識&#xff0c;禁止進行違法犯罪活動&#xff01; 內容參考于&#xff1a;圖靈Python學院 工具下載&#xff1a; 鏈接&#xff1a;https://pan.baidu.com/s/1bb8NhJc9eTuLzQr39lF55Q?pwdzy89 提取碼&#xff1…

Obsidian Callouts標注框語法

Obsidian 從 0.14 版本開始原生支持 Callouts&#xff1a; 語法基于 Markdown 引用塊&#xff08;>&#xff09;擴展&#xff1a; 語法格式如下&#xff1a; > [!類型] 可選標題 > 內容支持 **Markdown 格式**、[[內部鏈接]] 和嵌入文件。預覽 可選類型一覽&#xf…

nt!MiAllocateWsle函數分析之設置Wsle[WorkingSetIndex]

第一部分&#xff1a; 1: kd> p nt!MiAddValidPageToWorkingSet0xa9: 80a83c13 e8da9afcff call nt!MiAllocateWsle (80a4d6f2) 1: kd> t nt!MiAllocateWsle: 80a4d6f2 55 push ebp 1: kd> dv WsInfo 0x8953a1f8 PointerPte …

docker 命令操作大全

1 Docker Hello World 簡單命令 docker run ubuntu:15.10 /bin/echo "Hello world" docker run&#xff1a;啟動一個新容器。 ubuntu:15.10&#xff1a;使用的 Docker 鏡像&#xff08;Ubuntu 15.10 版本&#xff09;。 Docker 首先從本地主機上查找鏡像是否存在&a…

【軟件工程】基于機器學習的多缺陷定位

基于機器學習的多缺陷定位&#xff08;Multi-Dault Localization, MDL&#xff09;是軟件工程和自動化測試領域的重要研究方向&#xff0c;旨在通過機器學習技術高效識別代碼中多個潛在缺陷的位置。以下從方法、挑戰、應用場景及未來方向展開分析&#xff1a; 一、核心方法 監督…

用MCP往ppt文件里插入系統架構圖

文章目錄 一、技術架構解析1. Markdown解析模塊(markdown_to_hierarchy)2. 動態布局引擎(give_hierarchy_positions)3. PPTX生成模塊(generate_pptx)二、核心技術亮點1. 自適應布局算法2. MCP服務集成三、工程實踐建議1. 性能優化方向2. 樣式擴展方案3. 部署實踐四、應用…

CS016-2-unity ecs

目錄 【23】射擊改進 【24】僵尸生成器 ?編輯【25】隨機行走 【27】射擊光效 【23】射擊改進 a. 當距離目標太遠的時候&#xff0c;要繼續移動。而當距離目標到達攻擊距離之后&#xff0c;則停止移動。 上圖中的if&#xff1a;判斷自身和目標的距離是否大于攻擊距離&#…

新能源汽車制動系統建模全解析——從理論到工程應用

《純電動輕卡制動系統建模全解析&#xff1a;車速-阻力擬合、剎車力模型與旋轉質量轉換系數優化》 摘要 本文以純電動輕卡為研究對象&#xff0c;系統解析制動系統建模核心參數優化方法&#xff0c;涵蓋&#xff1a; 車速-阻力曲線擬合&#xff08;MATLAB實現與模型驗證&…

函數專題1

函數的定義 函數的基本寫法如下所示&#xff1a; def function_name(parameter1, parameter2, ...):"""Docstring: 描述函數的功能、參數和返回值 (可選但強烈推薦)"""# 函數體: 實現功能的代碼# ...return value # 可選&#xff0c;用于返回結…