数据科学和机器学习的“看家兵器”——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.mzph.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;用于返回结…