当前位置: 首页 > news >正文

Pandas 进阶 —— 数据转换、聚合与可视化

引言

在数据分析的旅程中,Pandas 库提供了从数据转换到聚合再到可视化的全面解决方案。上篇我们掌握了数据的导入和清洗,本篇我们将探索如何通过 Pandas 对数据进行更高级的处理,包括数据转换、聚合分析以及可视化展示。

数据转换

数据转换是数据分析中的重要环节,它涉及到数据结构的调整和变换,以适应不同的分析需求。

  • 数据重塑:通过 melt(), pivot(), pivot_table() 函数,我们可以将数据从宽格式转换为长格式,或者重新排列数据的行列,以便于分析。
  • 数据类型转换:使用 astype() 函数可以转换数据的类型,例如将字符串转换为数值类型,以便进行数值计算。
  • 数据排序sort_values() 函数可以用来根据某个或某些列的值进行排序,这对于数据的直观理解和后续分析至关重要。

代码示例:

# 将宽格式数据转换为长格式
df_long = df.melt(id_vars=['Name', 'Age'], value_vars=['Gender', 'Salary'], var_name='Attribute', value_name='Value')
print(df_long)# 转换数据类型
df['Age'] = df['Age'].astype(int)# 根据薪资进行排序
df_sorted = df.sort_values(by='Salary', ascending=False)
数据聚合

数据聚合是通过某种方式将数据汇总起来,以得出有意义的统计信息。

  • 分组和聚合groupby() 函数结合 agg() 可以对数据进行分组,并应用多种聚合函数,如求和、平均、最大值等。
  • 窗口函数rolling()expanding() 函数用于执行移动窗口计算,这在时间序列分析中尤其有用。

代码示例:

# 按性别分组并计算平均薪资
gender_salary_avg = df.groupby('Gender')['Salary'].mean()
print(gender_salary_avg)# 使用窗口函数计算薪资的移动平均值
salary_rolling_mean = df['Salary'].rolling(window=3).mean()
时间序列分析

时间序列分析是数据分析中的一个重要领域,特别是在处理具有时间戳的数据时。

  • 解析日期时间to_datetime() 函数用于将字符串转换为日期时间格式,这是进行时间序列分析的第一步。
  • 时间索引:使用 set_index() 可以将日期时间设置为 DataFrame 的索引,从而方便进行时间序列的切片和重采样。
  • 重采样resample() 函数用于更改时间序列的频率,进行上采样或下采样。

代码示例:

# 解析日期时间并设置为索引
df['Date'] = pd.to_datetime(df['Date'])
df.set_index('Date', inplace=True)# 按月重采样并计算平均薪资
monthly_avg_salary = df.resample('M').mean()['Salary']
数据可视化

数据可视化是数据分析的直观展示,Pandas 与 Matplotlib 等绘图库的结合使用,可以创建各种图表。

  • 基本绘图:使用 plot() 函数可以快速绘制折线图、柱状图、饼图等。
  • 高级图表:包括直方图、箱线图、散点图等,这些图表可以帮助我们发现数据的分布、异常值和相关性。

代码示例:

import matplotlib.pyplot as plt# 绘制薪资的直方图
df['Salary'].plot(kind='hist')
plt.title('Salary Distribution')
plt.xlabel('Salary')
plt.ylabel('Frequency')
plt.show()# 绘制薪资和年龄的散点图
df.plot(kind='scatter', x='Age', y='Salary')
plt.title('Salary vs Age')
plt.xlabel('Age')
plt.ylabel('Salary')
plt.show()
结语

通过本文的学习,我们不仅掌握了 Pandas 的数据转换、聚合和可视化技巧,而且通过具体的代码示例,能够将这些理论知识应用到实际的数据分析工作中。数据的探索和分析是一个不断深入的过程,Pandas 提供了强大的工具来帮助我们从不同角度理解和解释数据。希望你能将这些技能运用到自己的项目中,不断探索和发现数据的潜在价值。

相关文章:

Pandas 进阶 —— 数据转换、聚合与可视化

引言 在数据分析的旅程中,Pandas 库提供了从数据转换到聚合再到可视化的全面解决方案。上篇我们掌握了数据的导入和清洗,本篇我们将探索如何通过 Pandas 对数据进行更高级的处理,包括数据转换、聚合分析以及可视化展示。 数据转换 数据转换…...

华为OD机试 - 来自异国的客人(Java 2024 D卷 100分)

华为OD机试 2024D卷题库疯狂收录中,刷题点这里 专栏导读 本专栏收录于《华为OD机试(JAVA)真题(D卷C卷A卷B卷)》。 刷的越多,抽中的概率越大,每一题都有详细的答题思路、详细的代码注释、样例测…...

期末上分站——计组(3)

复习题21-42 21、指令周期是指__C_。 A. CPU从主存取出一条指令的时间 B. CPU执行一条指令的时间 C. CPU从主存取出一条指令的时间加上执行这条指令的时间。 D. 时钟周期时间 22、微型机系统中外设通过适配器与主板的系统总线相连接,其功能是__D_。 A. 数据缓冲和…...

IDA*——AcWing 180. 排书

IDA* 定义 IDA*(Iterative Deepening A*)是一种结合了深度优先搜索(DFS)的递归深度限制特性和A搜索的启发式估价函数的搜索算法。它主要用于解决启发式搜索问题,尤其是当搜索空间很大或者搜索成本不确定时。 IDA* 是…...

【云计算】公有云、私有云、混合云、社区云、多云

公有云、私有云、混合云、社区云、多云 1.云计算的形态1.1 公有云1.2 私有云1.3 混合云1.4 社区云1.5 多云1.5.1 多云和混合云之间的关系1.5.2 多云的用途1.5.3 影子 IT 和多云1.5.4 优缺点 2.不同云形态的对比 1.云计算的形态 张三⾃⼰在家做饭吃,这是 私有云&…...

MySQL中的MVCC解析

MySQL中的MVCC解析 多版本并发控制是MySQL中实现高并发的一种关键技术。通过对数据进行多版本的管理,MVCC能够在保证数据一致性的同时,提高数据库的并发性能。本文将深入探讨MySQL中的MVCC机制,包括其原理、实现方式以及优势。 MVCC的原理 …...

【2024最新华为OD-C/D卷试题汇总】[支持在线评测] LYA的生日聚会(100分) - 三语言AC题解(Python/Java/Cpp)

🍭 大家好这里是清隆学长 ,一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-C/D卷的三语言AC题解 💻 ACM银牌🥈| 多次AK大厂笔试 | 编程一对一辅导 👏 感谢大家的订阅➕ 和 喜欢💗 &#x1f…...

初识STM32:芯片基本信息

STM32简介 STM32是ST公司基于ARM公司的Cortex-M内核开发的32位微控制器。 ARM公司是全球领先的半导体知识产权(IP)提供商,全世界超过95%的智能手机和平板电脑都采用ARM架构。 ST公司于1987年由意大利的SGS微电子与法国的Thomson半导体合并…...

Zabbix 配置PING监控

Zabbix PING监控介绍 如果需要判断机房的网络或者主机是否正常,这就需要使用zabbix ping,Zabbix使用外部命令fping处理ICMP ping的请求,在基于ubuntu APT方式安装zabbix后默认已存在fping程序。另外zabinx_server配置文件参数FpingLocation默…...

异常解决(三)-- Wandb fails with ServiceStartProcessError

原文链接:https://github.com/wandb/wandb/issues/5765 我的环境配置: Python3.8.16 Wandb0.17.4 在使用Wandb记录实验数据时, 报以下错误: ServiceStartProcessError: The wandb service process exited with 1. Ensure that s…...

Qt调用Matlab(一)

目录 1 概述2 创建Qt工程2.1 增加Matlab支持3 调用Matlab3.1 widget.h3.2 widget.cpp4 运行4.1 配置4.2 运行1 概述 MATLAB是MathWorks公司出品的商业数学软件,用于数据分析、无线通信、深度学习、图像处理与计算机视觉、信号处理、量化金融与风险管理、机器人,控制系统等领域…...

网络爬虫(二) 哔哩哔哩热榜高频词按照图片形状排列

我们有时候需要爬取结果生成为自定义的词云图 生成自定义的词云图通常需要以下步骤: 1. 爬取数据:使用爬虫工具或库,如requests、BeautifulSoup等,可以爬取网页、论坛、社交媒体等平台上的文本数据。 2. 数据预处理&#xff1a…...

MySQL 常见错误及解决方案

1. Too many connections 运行环境:Winows11、Phpstudy V8.1.1.3、MySQL 5.7.26 同一时间 MySQL 的连接数量有限制,当超过上限时将提示下面错误信息: 1040 - Too many connections 查看当前最大连接数 mysql> show variables like %max_…...

STM32 - 内存分区与OTA

最近搞MCU,发现它与SOC之间存在诸多差异,不能沿用SOC上一些技术理论。本文以STM L4为例,总结了一些STM32 小白入门指南。 标题MCU没有DDR? 是的。MCU并没有DDR,而是让代码存储在nor flash上,临时变量和栈…...

RAG理论:ES混合搜索BM25+kNN(cosine)以及归一化

接前一篇:RAG实践:ES混合搜索BM25+kNN(cosine) https://blog.csdn.net/Xin_101/article/details/140230948 本文主要讲解混合搜索相关理论以及计算推导过程, 包括BM25、kNN以及ES中使用混合搜索分数计算过程。 详细讲解: (1)ES中如何通过BM25计算关键词搜索分数; (2)…...

分享大厂对于缓存操作的封装

hello,伙伴们好久不见,我是shigen。发现有两周没有更新我的文章了。也是因为最近比较忙,基本是993了。 缓存大家再熟悉不过了,几乎是现在任何系统的标配,并引申出来很多的问题:缓存穿透、缓存击穿、缓存雪崩…...

冯诺依曼体系结构与操作系统(Linux)

文章目录 前言冯诺依曼体系结构(硬件)操作系统(软件)总结 前言 冯诺依曼体系结构(硬件) 上图就是冯诺依曼体系结构图,主要包括输入设备,输出设备,存储器,运算…...

开源六轴协作机械臂myCobot280实现交互式乘法!让学习充满乐趣

本文经作者Fumitaka Kimizuka 授权我们翻译和转载。 原文链接:myCobotに「頷き」「首振り」「首傾げ」をしてもらう 🤖 - みかづきブログ・カスタム 引言 Fumitaka Kimizuka 创造了一个乘法表系统,帮助他的女儿享受学习乘法表的乐趣。她可以…...

[C++][CMake][嵌套的CMake]详细讲解

目录 0.前言 & 准备1.节点关系2.添加子目录3.解决问题1.根目录2.calc目录3.sort目录4.calc_test目录5.sort_test 4.注意 0.前言 & 准备 如果项目很大,或者项目中有很多的源码目录,在通过CMake管理项目的时候如果只使用一个CMakeLists.txt&#…...

尚品汇-(十三)

&#xff08;1&#xff09;查询sku列表 在ManageService 中添加 /*** SKU分页列表* param pageParam* return*/ IPage<SkuInfo> getPage(Page<SkuInfo> pageParam);接口实现类 Override public IPage<SkuInfo> getPage(Page<SkuInfo> pageParam) {Qu…...

PostgreSQL CASE语句深度解析:性能、类型与NULL安全实战指南

1. 为什么你必须真正吃透 PostgreSQL 的 CASE 语句——它远不止是 SQL 里的“if-else”翻译器在 PostgreSQL 实战中&#xff0c;我见过太多人把CASE当成一个语法糖&#xff1a;写几个WHEN...THEN&#xff0c;加个ELSE&#xff0c;再套个END&#xff0c;就以为搞定了。结果呢&am…...

ARM PMU外部接口与性能监控寄存器详解

1. ARM性能监控寄存器外部接口深度解析性能监控单元(PMU)是现代处理器架构中用于硬件性能分析的核心模块&#xff0c;它通过一组可编程计数器实时捕获处理器微架构层面的各类事件。在ARMv8/v9架构中&#xff0c;PMU不仅可以通过系统寄存器访问&#xff0c;还提供了标准化的外部…...

3步解锁网易云音乐NCM加密:让音乐真正属于你

3步解锁网易云音乐NCM加密&#xff1a;让音乐真正属于你 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为下载的网易云音乐只能在特定客户端播放而烦恼吗&#xff1f;当你精心收藏的歌曲被NCM格式"锁"在单一平台时&a…...

谷氨酸发酵过程的软测量建模【附模型】

✨ 长期致力于软测量、谷氨酸发酵、动力学模型、支持向量机、高斯过程、变量选择、异常状态研究工作&#xff0c;擅长数据搜集与处理、建模仿真、程序编写、仿真设计。 ✅ 专业定制毕设、代码 ✅ 如需沟通交流&#xff0c;点击《获取方式》 &#xff08;1&#xff09;多阶段高斯…...

Gazebo Sim多旋翼控制:四轴飞行器动力学建模与PID调参

Gazebo Sim多旋翼控制&#xff1a;四轴飞行器动力学建模与PID调参 【免费下载链接】gz-sim Open source robotics simulator. The latest version of Gazebo. 项目地址: https://gitcode.com/gh_mirrors/gz/gz-sim Gazebo Sim是一款功能强大的开源机器人模拟器&#xff…...

LaTeX公式一键转Word:3步告别数学公式编辑烦恼

LaTeX公式一键转Word&#xff1a;3步告别数学公式编辑烦恼 【免费下载链接】LaTeX2Word-Equation Copy LaTeX Equations as Word Equations, a Chrome Extension 项目地址: https://gitcode.com/gh_mirrors/la/LaTeX2Word-Equation 还在为Word文档中的数学公式编辑而抓狂…...

【审计专栏】【财务领域】 第四十九篇 人在企业中的核心资产和核心利益01

编号 类型 企业 (行业/企业产品/企业利益链/生态位与层级) 业务领域 企业性质 企业中人的角色/岗位/利益矩阵 人在企业中的核心资产/附属资产 资产的业务-财务数学模型及数字/数值 关联知识 1 核心经营性资产(如IP、数据、品牌) 行业:人工智能 产品:工业视觉检…...

第2章 谁在危险中——被AI替代的五类程序员

第2章 谁在危险中——被AI替代的五类程序员 核心问题:哪些程序员最容易被AI替代?背后的原因是什么? 2.1 问题定义:一场正在发生的结构性塌陷 2.1.1 数据不会说谎 2026年1月12日,Ravio发布了一份让整个科技圈沉默的报告:过去一年,初级开发者岗位招聘量暴跌73%。 不是…...

Linux 负载均衡的 cache_nice_tries:缓存友好的迁移尝试

简介现如今服务器、嵌入式设备、工控主板普遍采用多核、NUMA 架构 CPU&#xff0c;多进程多线程并发运行模式成为常态。Linux 内核依靠调度域分层负载均衡机制&#xff0c;分散 CPU 运行压力&#xff0c;避免单核心负载过高、其余核心空闲浪费硬件算力。但任务跨核心迁移是一把…...

大模型测试新范式:Claude端到端验证的5层断言体系(语义一致性/上下文连贯性/安全边界/成本阈值/时序鲁棒性)

更多请点击&#xff1a; https://codechina.net 第一章&#xff1a;大模型测试新范式&#xff1a;Claude端到端验证的5层断言体系&#xff08;语义一致性/上下文连贯性/安全边界/成本阈值/时序鲁棒性&#xff09; 传统LLM测试常聚焦于准确率或BLEU等静态指标&#xff0c;而Cla…...