第十五章:Python的Pandas库详解及常见用法
在数据分析领域,Python的Pandas库是一个不可或缺的工具。它提供了高效的数据结构和数据分析工具,使得数据处理变得简单而直观。本文将详细介绍Pandas库的基本功能、常见用法,并通过示例代码演示如何使用Pandas进行数据处理。最后,我将用表格的形式梳理总结Pandas库的常用函数及其参数用法。资源绑定附上完整资源供读者参考学习!
一、Pandas库简介
1.1 什么是Pandas?
Pandas是一个开源的Python库,专为数据分析而设计。它提供了两种主要的数据结构:Series
(一维数组)和DataFrame
(二维表格),使得数据处理更加高效和便捷。
1.2 Pandas的主要特点
-
数据结构:提供了
Series
和DataFrame
两种数据结构,适合处理结构化数据。 -
数据读取:支持多种数据格式的读取,如CSV、Excel、SQL数据库等。
-
数据清洗:提供了处理缺失值、重复值、异常值等功能。
-
数据转换:支持数据的筛选、排序、分组、聚合等操作。
-
数据可视化:集成了Matplotlib,方便进行数据可视化。
1.3 Pandas的应用场景
-
数据分析:用于清洗、转换和分析数据。
-
数据科学:在数据科学项目中进行数据预处理。
-
金融分析:处理时间序列数据和金融数据。
-
机器学习:作为数据预处理工具,为机器学习模型提供输入数据。
二、Pandas库的常见用法
2.1 安装和导入Pandas
Python
# 安装Pandas
pip install pandas# 导入Pandas
import pandas as pd
2.2 数据读取
2.2.1 读取CSV文件
Python
import pandas as pd
# 读取CSV文件
df = pd.read_csv('2001-2017年北京市水资源情况信息.csv',encoding='gbk')# 显示前5行数据
print(df.head())
2.2.2 读取Excel文件
Python
# 读取Excel文件
df = pd.read_excel('data.xlsx')# 显示前5行数据
print(df.head())
2.3 数据的基本操作
2.3.1 查看数据结构
Python
import pandas as pd
df=pd.read_csv('2001-2017年北京市水资源情况信息.csv',encoding='gbk')
# 查看数据类型
print(df.dtypes)# 查看数据维度
print(df.shape)# 查看数据描述性统计
print(df.describe())
2.3.2 筛选数据
Python
import pandas as pd
df=pd.read_excel('data.xlsx')
# 按列名筛选
print(df['姓名'])# 按条件筛选
print(df[df['总成绩'] > 90])# 多条件筛选
print(df[(df['平时成绩'] > 90) & (df['总成绩'] >90)])
2.3.3 排序数据
Python
import pandas as pd
df=pd.read_excel('data.xlsx')
# 按某一列排序
df_sorted = df.sort_values(by='总成绩', ascending=False)
print(df_sorted)# 按多列排序
df_sorted = df.sort_values(by=['平时成绩', '总成绩'], ascending=[False, True])
print(df_sorted)
2.4 数据清洗
2.4.1 处理缺失值
Python
import pandas as pd
df=pd.read_excel('data.xlsx')
# 查看缺失值
print(df.isnull().sum())# 删除缺失值
df_cleaned = df.dropna()# 填充缺失值
df_filled = df.fillna(value=0)
2.4.2 处理重复值
Python
import pandas as pd
df=pd.read_excel('data.xlsx')
# 查找重复值
print(df.duplicated())# 删除重复值
df_unique = df.drop_duplicates()
2.4.3 处理异常值
Python
import pandas as pd
df=pd.read_excel('data.xlsx')
# 使用IQR方法检测异常值
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)))]
2.5 数据可视化
2.5.1 绘制柱状图
Python
import pandas as pd
import matplotlib.pyplot as pltplt.rcParams['font.sans-serif'] = ['SimHei']
df=pd.read_excel('data.xlsx')df['总成绩'].value_counts().plot(kind='bar')
plt.show()
2.5.2 绘制折线图
Python
import pandas as pd
import matplotlib.pyplot as pltplt.rcParams['font.sans-serif'] = ['SimHei']
df=pd.read_excel('data.xlsx')df.plot(x='姓名', y='平时成绩', kind='line')
plt.show()
2.5.3 绘制散点图
Python
import pandas as pd
import matplotlib.pyplot as pltplt.rcParams['font.sans-serif'] = ['SimHei']
df=pd.read_excel('data.xlsx')df.plot(x='学院', y='总成绩', kind='scatter')
plt.show()
三、Pandas常用函数及参数总结
函数 | 参数 | 说明 | 示例 |
---|---|---|---|
read_csv | filepath , sep , header | 读取CSV文件 | pd.read_csv('data.csv', sep=',', header=0) |
read_excel | filepath , sheet_name | 读取Excel文件 | pd.read_excel('data.xlsx', sheet_name='Sheet1') |
read_sql_query | sql , con | 从SQL数据库读取数据 | pd.read_sql_query("SELECT * FROM table", conn) |
head | n | 显示前n行数据 | df.head(5) |
tail | n | 显示后n行数据 | df.tail(5) |
describe | include , exclude | 显示数据的描述性统计 | df.describe(include='all') |
dtypes | - | 显示数据类型 | df.dtypes |
shape | - | 显示数据维度 | df.shape |
sort_values | by , ascending | 按列排序 | df.sort_values(by='column', ascending=False) |
groupby | by | 按列分组 | df.groupby('column') |
sum | axis , numeric_only | 求和 | df.sum(axis=0, numeric_only=True) |
mean | axis , numeric_only | 求平均值 | df.mean(axis=0, numeric_only=True) |
dropna | axis , how , thresh | 删除缺失值 | df.dropna(axis=0, how='any', thresh=2) |
fillna | value , method | 填充缺失值 | df.fillna(value=0, method='ffill') |
duplicated | subset , keep | 查找重复值 | df.duplicated(subset=['column1', 'column2'], keep='first') |
drop_duplicates | subset , keep | 删除重复值 | df.drop_duplicates(subset=['column1', 'column2'], keep='first') |
value_counts | normalize , dropna | 计算唯一值的频率 | df['column'].value_counts(normalize=True, dropna=False) |
plot | x , y , kind | 绘制图表 | df.plot(x='column1', y='column2', kind='scatter') |
四、总结
Pandas库是Python数据分析的核心工具之一,提供了丰富的功能和便捷的操作方式。通过本文的介绍和示例代码,相信你已经对Pandas库有了初步的了解。以下是Pandas库的主要优势:
-
高效的数据结构:
Series
和DataFrame
使得数据处理更加直观和高效。 -
丰富的数据操作:支持数据读取、清洗、转换、分析和可视化等多种操作。
-
广泛的适用性:适用于数据分析、数据科学、金融分析等多个领域。
希望本文能帮助你更好地理解和使用Pandas库,提高数据分析的效率和质量。如果你有任何问题或建议,欢迎在评论区留言!资源绑定附上完整资源供读者参考学习!
相关文章:
第十五章:Python的Pandas库详解及常见用法
在数据分析领域,Python的Pandas库是一个不可或缺的工具。它提供了高效的数据结构和数据分析工具,使得数据处理变得简单而直观。本文将详细介绍Pandas库的基本功能、常见用法,并通过示例代码演示如何使用Pandas进行数据处理。最后,…...
Windows下VSCode的安装
前言 VSCode的安装看起来平平无奇,但也不是轻轻松松的。笔者将最新的Windows下安装VSCode,以及运行最简单的C程序的过程记录下来,供后续的自己和大家参考。 一、官网下载安装包 Visual Studio Code - Code Editing. Redefined 二、安装 直接…...
PgDog:一个PostgreSQL分布式集群中间件
PgDog 是一个实现了 PostgreSQL 分片、连接池以及负载均衡功能的中间。PgDog 使用 Rust 语言编写,支持跨平台(Linux、Mac OS、Windows),具有高性能和高可靠性,可以在不需要修改任何应用程序的前提下实现 PostgreSQL 数…...
基于yolov11的棉花品种分类检测系统python源码+pytorch模型+评估指标曲线+精美GUI界面
【算法介绍】 基于YOLOv11的棉花品种分类检测系统是一种高效、准确的农作物品种识别工具。该系统利用YOLOv11深度学习模型,能够实现对棉花主要品种,包括树棉(G. arboreum)、海岛棉(G. barbadense)、草棉&a…...
Web网页内嵌福昕OFD版式办公套件实现在线预览编辑PDF、OFD文档
PDF,即Portable Document Format,用于以一种独立于应用程序、硬件、操作系统的方式共享和查看文档;OFD,即Office Open Document Format for Document,是一种在政府公文和法律文件等领域广泛应用的电子文件格式…...
UE4学习笔记 FPS游戏制作32 主菜单,暂停游戏,显示鼠标指针
文章目录 一主菜单搭建UI显示主菜单时,暂停游戏,显示鼠标绑定按钮 二 打开主菜单 一主菜单 搭建UI 添加一个MainUi的控件 添加一个返回游戏的按钮和一个退出游戏的按钮 修改一下样式,放中间 显示主菜单时,暂停游戏࿰…...
多线程 - 线程安全引入
写一个代码,让主线程创建一个新的线程,由新的线程负责完成一系列的运算(比如:1 2 3 ... 1000),再由主线程负责获取到最终结果。 但打印结果为 result 0,略微思考,明白了要让 t 线…...
Angular项目改端口号
在 Angular 项目中修改开发服务器的端口号(默认是 4200),可以通过以下几种方式实现: 方法 1:通过 ng serve 命令行参数 直接在运行 ng serve 时指定端口号: ng serve --port 4300效果:开发服务…...
论文内可解释性分析
目录 3 TEPM(Text-Enhanced Prototype Module)3.1 为什么要进行文本增强?(动机)3.2 为什么要使用 Concat(Fv, T) 和 Repeat(T) + Fv?3.3 为什么 Q=F_C,K=V=F_R ?(第一层注意力)3.4 为什么要进行两层注意力?3.5 为什么最终结果会更好?**3.6 面试官可能问的挑战性问题*…...
《C++11:通过thread类编写C++多线程程序》
关于多线程的概念与理解,可以先了解Linux下的底层线程。当对底层线程有了一定程度理解以后,再学习语言级别的多线程编程就轻而易举了。 【Linux】多线程 -> 从线程概念到线程控制 【Linux】多线程 -> 线程互斥与死锁 语言级别的…...
@Resource 与 @Autowired:Spring 中的依赖注入注解大比拼
在 Spring 框架中,依赖注入(DI)是核心功能之一,它允许开发者将组件之间的依赖关系交给 Spring 容器管理,从而实现解耦和更灵活的代码结构。Resource 和 Autowired 是两种常用的依赖注入注解,它们虽然功能相…...
大模型学习:从零到一实现一个BERT微调
目录 一、准备阶段 1.导入模块 2.指定使用的是GPU还是CPU 3.加载数据集 二、对数据添加词元和分词 1.根据BERT的预训练,我们要将一个句子的句头添加[CLS]句尾添加[SEP] 2.激活BERT词元分析器 3.填充句子为固定长度 代码解释: 三、数据处理 1.…...
Git和GitCode使用(从Git安装到上传项目一条龙)
第一步 菜鸟教程-Git教程 点击上方链接,完成Git的安装,并了解Git 工作流程,知道Git 工作区、暂存区和版本库的区别 第二步 GitCode官方帮助文档-SSH 公钥管理 点击上方链接,完成SSH公钥设置 第三步(GitCode的官方引…...
NodeJs之http模块
一、概念: 1、协议:双方必须共同遵从的一组约定。 Hypertext Transfer Protocol:HTTP,超文本传输协议 2、请求: ① 请求报文的组成: 请求行请求头空行请求体 ② 请求行: 请求方法URLHTTP版本…...
【深度学习与实战】2.3、线性回归模型与梯度下降法先导案例--最小二乘法(向量形式求解)
为了求解损失函数 对 的导数,并利用最小二乘法向量形式求解 的值 这是线性回归的平方误差损失函数,目标是最小化预测值 与真实值 之间的差距。 损失函数: 考虑多个样本的情况,损失函数为所有样本的平方误差之和&a…...
在word中使用zotero添加参考文献并附带超链接
一、引言 在写大论文时,为了避免文中引用与文末参考文献频繁对照、修改文中引用顺序/引用文献时手动维护参考文献耗易出错,拟在 word 中使用 zotero 插入参考文献,并为每个参考文献附加超链接,实现交互式阅读。 版本:…...
在Linux系统中将html保存为PNG图片
1 前言 之前使用Pyecharts库在Windows系统中生成图表并转换为PNG格式图片(传送门),现将代码放于Linux服务器上运行,结果发现错误,生成html文件之后无法保存图片。 2 原理 基于Selenium库的保存方案,其原…...
presto任务优化参数
presto引擎业内通常用它来做即席查询,它基于内存计算效率确实快,不过它自身的任务优化参数比较杂,不同类型的catalog能用的参数不完全一样,在官网上倒是可以看到相关资料,配置文件中写的见https://prestodb.io/docs/cu…...
uniapp + Axios + 小程序封装网络请求
前言 小程序自带的网络请求使用起来比较麻烦,不便于管理,就需要封装网络请求,减少繁琐步骤,封装最终效果,根据类别将网络请求封装在文件中,使用得时候调用文件名名称加文件中得自定义名称,就可…...
《网络管理》实践环节01:OpenEuler22.03sp4安装zabbix6.2
兰生幽谷,不为莫服而不芳; 君子行义,不为莫知而止休。 1 环境 openEuler 22.03 LTSsp4PHP 8.0Apache 2Mysql 8.0zabbix6.2.4 表1-1 Zabbix网络规划(用你们自己的特征网段规划) 主机名 IP 功能 备注 zbx6svr 19…...
4.6js面向对象
js原型继承 JavaScript 的原型链继承是其核心特性之一,理解原型链对于掌握 JavaScript 的面向对象编程至关重要。 1. 原型(Prototype)基础 在 JavaScript 中,每个对象都有一个内部属性 [[Prototype]](可以通过 __p…...
【云服务器】在Linux CentOS 7上快速搭建我的世界 Minecraft Fabric 服务器搭建,Fabric 模组详细搭建教程
【云服务器】在Linux CentOS 7上快速搭建我的世界 Minecraft Fabric 服务器搭建,Fabric 模组详细搭建教程 一、 服务器介绍二、安装 JDK 21三、搭建 Minecraft 服务端四、本地测试连接五、如何添加模组(mods)六、添加服务,并设置开…...
SQL SELECT DISTINCT 语句详解:精准去重的艺术
SQL SELECT DISTINCT 语句详解:精准去重的艺术 一、为什么需要数据去重? 在日常数据库操作中,我们经常会遇到这样的场景:查询客户表时发现重复的邮箱地址,统计销售数据时出现冗余的订单记录,分析用户行为…...
从ChatGPT到AutoGPT——AI Agent的范式迁移
一、AI Agent的范式迁移 1. ChatGPT的局限性与Agent化需求 单轮对话的“工具属性” vs. 多轮复杂任务的“自主性” ChatGPT 作为强大的生成式AI,虽然能够进行连贯对话,但本质上仍然是“工具型”AI,依赖用户提供明确的指令,而无法自主规划和执行任务。 人类介入成本过高:提…...
SQL EXISTS 与 NOT EXISTS 运算符
EXISTS 和 NOT EXISTS 是 SQL 中的逻辑运算符,用于检查子查询是否返回任何行。它们通常用在 WHERE 子句中,与子查询一起使用。 EXISTS 运算符 EXISTS 运算符用于检查子查询是否返回至少一行数据。如果子查询返回任何行,EXISTS 返回 TRUE&…...
AGI 的概念、意义与未来展望
随着人工智能技术的飞速发展,我们已经见证了在图像识别、自然语言处理等特定领域取得的巨大突破。然而,这些成就都属于弱人工智能(Narrow AI)的范畴,它们只能在预设的任务范围内高效工作。 人们对于一种拥有更广泛、更…...
基于Java与Go的下一代DDoS防御体系构建实战
引言:混合云时代的攻防对抗新格局 2024年某金融平台遭遇峰值2.3Tbps的IPv6混合攻击,传统WAF方案在新型AI驱动攻击面前全面失效。本文将以Java与Go为技术栈,揭示如何构建具备智能决策能力的防御系统。 一、攻击防御技术矩阵重构 1.1 混合攻击特征识别 攻击类型Java检测方案…...
FPGA调试笔记
XILINX SSTL属性电平报错 错误如下: [DRC BIVRU-1] Bank IO standard Vref utilization: Bank 33 contains ports that use a reference voltage. In order to use such standards in a bank that is not configured to use INTERNAL_VREF, the banks VREF pin mu…...
Axure项目实战:智慧城市APP(七)我的、消息(显示与隐藏交互)
亲爱的小伙伴,在您浏览之前,烦请关注一下,在此深表感谢! 课程主题:智慧城市APP 主要内容:我的、消息、活动模块页面 应用场景:消息页设计、我的页面设计以及活动页面设计 案例展示ÿ…...
深度学习——图像余弦相似度
计算机视觉是研究图像的学问,在图像的最终评价时,往往需要用到一些图像相似度的度量指标,因此,在本文中我们将详细地介绍原生和调用第三方库的计算图像余弦相似度的方法。 使用原生numpy实现 import numpy as npdef image_cosin…...
求矩阵某列的和
设计函数sum_column( int A[E1(n)][E2(n)], int j ),E1(n)和E2(n)分别为用宏定义的行数和列数,j为列号。在该函数中,设计指针ptr&A[0][j],通过*ptr及ptrptrE2(n)访问第j列元素,从而求得第j列元素的和。在主函数中定…...
【论文分析】无人机轨迹规划,Fast-Planner:实时避障+全局最优的路径引导优化算法
这篇论文《Robust Real-time UAV Replanning Using Guided Gradient-based Optimization and Topological Paths》由香港科技大学提出,主要针对无人机(UAV)在复杂环境中的实时轨迹重新规划问题,提出了一种结合梯度优化和拓扑路径搜…...
李飞飞、吴佳俊团队新作:FlowMo如何以零卷积、零对抗损失实现ImageNet重构新巅峰
目录 一、摘要 二、引言 三、相关工作 四、方法 基于扩散先前的离散标记化器利用广告 架构 阶段 1A:模式匹配预训练 阶段 1B:模式搜索后训练 采样 第二阶段:潜在生成建模 五、Coovally AI模型训练与应用平台 六、实验 主要结果 …...
AutoDev 2.0 正式发布:智能体 x 开源生态,AI 自动开发新标杆
在我们等待了几个月之后,国内终于有模型(DeepSeek V3-0324)能支持 AutoDev 的能力,也因此是时候发布 AutoDev 2.0 了!在 AutoDev 2.0 中,你可以: 编码智能体 Sketch 进行自动化编程自动化编程的…...
PHP 应用MYSQL 架构SQL 注入跨库查询文件读写权限操作
MYSQL 注入:(目的获取当前 web 权限) 1 、判断常见四个信息(系统,用户,数据库名,版本) 2 、根据四个信息去选择方案 root 用户:先测试读写,后测试获取…...
鸿蒙-全屏播放页面(使用相对布局)---持续更新中
最终实现效果图: 实现步骤 创建FullScreenPlay.ets全品播放页面 并将其修改为启动页面。 全屏播放,屏幕必然横过来,所以要将窗口横过来。 编辑 src/main/ets/entryability/EntryAbility.ets 若写在/EntryAbility.ets中,则所有…...
第4期:重构软件测试体系——生成式AI如何让BUG无所遁形
真实战场报告 某金融系统上线前,测试团队用AI生成3000条边缘用例,发现了一个隐藏极深的并发漏洞——该BUG在传统用例覆盖下需要7年才会触发一次。这次发现直接避免了可能上亿元的资金风险! 一、测试革命:当AI遇见质量保障 场景1&…...
力扣.旋转矩阵Ⅱ
59. 螺旋矩阵 II - 力扣(LeetCode) 代码区: class Solution {const int MAX25; public:vector<vector<int>> generateMatrix(int n) {vector<vector<int>> ans;vector<int> hang;int len_nn;int arry[25][25]…...
Docker 安装部署Harbor 私有仓库
Docker 安装部署Harbor 私有仓库 系统环境:redhat x86_64 一、首先部署docker 环境 定制软件源 wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repoyum install -y yum-utils device-mapper-persistent-data lvm2…...
SQL Server 中常见的数据类型及其详细解释、内存占用和适用场景
以下是 SQL Server 中常见的数据类型及其详细解释、内存占用和适用场景: 数据类型类别数据类型解释内存占用适用场景整数类型bigint用于存储范围较大的整数,范围是 -2^63 (-9,223,372,036,854,775,808) 到 2^63-1 (9,223,372,036,854,775,807)8 字节需要…...
javascript实现一个函数,将字符串中的指定子串全部替换为另一个字符串的原理,以及多种方法实现。
大白话javascript实现一个函数,将字符串中的指定子串全部替换为另一个字符串的原理,以及多种方法实现。 在JavaScript里,要是你想把字符串里的指定子串都替换成另外一个字符串,有不少方法可以实现。下面我会详细介绍实现的原理&a…...
Python 3 与 MySQL 数据库连接:mysql-connector 模块详解
Python 3 与 MySQL 数据库连接:mysql-connector 模块详解 概述 在Python 3中,与MySQL数据库进行交互是一个常见的需求。mysql-connector是一个流行的Python模块,它提供了与MySQL数据库连接和交互的接口。本文将详细介绍mysql-connector模块…...
HCIA-Datacom高阶:基础的单区域 OSPF 与多区域 OSPF的配置
动态路由协议是实现网络高效通信的关键技术之一。开放式最短路径优先(Open Shortest Path First,OSPF)协议作为内部网关协议(IGP)的一种,因其高效性、稳定性和扩展性,在大型网络中得到了广泛应用…...
蓝桥杯单片机刷题——E2PROM记录开机次数
设计要求 使用E2PROM完成数据记录功能,单片机复位次数记录到E2PROM的地址0中。每复位一次数值加1,按下按键S4,串口发送复位次数。串口发送格式如下: Number:1 备注: 单片机IRC振荡器频率设置为12MHz。 …...
杂草YOLO系列数据集4000张
一份开源数据集——杂草YOLO数据集,该数据集适用于农业智能化、植物识别等计算机视觉应用场景。 数据集详情 训练集:3,664张高清标注图像测试集:180张多样性场景样本验证集:359张严格筛选数据 下载链接 杂草YOLO数据集分…...
Python自动化面试通关秘籍
Python自动化测试工程师面试,不仅仅是考察你的代码能力,更看重你如何在项目中灵活运用工具和框架解决实际问题。如果你正准备面试,这篇文章将为你总结最常见的高频考题及答题技巧,帮助你快速上手,通关面试,…...
机器学习的一百个概念(1)单位归一化
前言 本文隶属于专栏《机器学习的一百个概念》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢! 本专栏目录结构和参考文献请见[《机器学习的一百个概念》 ima 知识库 知识库广场搜索&…...
Python 笔记 (二)
Python Note 2 1. Python 慢的原因2. 三个元素3. 标准数据类型4. 字符串5. 比较大小: 富比较方法 rich comparison6. 数据容器 (支持*混装* )一、允许重复类 (list、tuple、str)二、不允许重复类 (set、dict)1、集合(set)2、字典(dict)3、特殊: 双端队列 deque 三、数据容器的共…...
【商城实战(97)】ELK日志管理系统的全面应用
【商城实战】专栏重磅来袭!这是一份专为开发者与电商从业者打造的超详细指南。从项目基础搭建,运用 uniapp、Element Plus、SpringBoot 搭建商城框架,到用户、商品、订单等核心模块开发,再到性能优化、安全加固、多端适配,乃至运营推广策略,102 章内容层层递进。无论是想…...
3.使用epoll实现单线程并发服务器
目录 1. epoll的概述 2. 多线程与epoll的处理流程 2.1 多线程处理流程 2.2 epoll处理流程 3. epoll与多线程的比较 4. epoll的操作函数 4.1 epoll_create() 4.2 epoll_ctl() 4.3 epoll_wait() 5. 示例代码 6. epoll的工作模式 7. 使用O_NONBLOCK防止阻塞 8.运行代…...