熊猫:完整的初学者指南
pandas:完整的初学者指南
一、说明
在你的Python开发人员或数据科学之旅中,你可能已经多次遇到“熊猫”这个词,但仍然需要弄清楚它的作用。以及数据和熊猫之间的关系。所以让我向你解释一下。
根据最新估计,每天创建 328.77 亿 TB 的数据。 现在是我们利用如此大量的数据来产生见解并预测当前和未来结果的时候了,因此pandas不能不修。
Pandas是一个基于NumPy和Matplotlib构建的Python库,主要用于处理DATA。它用于分析,清理,探索和操作数据。
它由Wes McKinney于2008年开发,用于数据分析目的。

摄影:Justin Morgan on Unsplash
二、为什么我们需要pandas?
一般来说,我们通过智能手机、物联网设备、调查和其他各种来源接收的数据充满了相关和不相关的信息,其中包含重复、缺失和无法操作的值,因此完全难以得出结论。因此,熊猫使我们能够从数据中产生有意义和有价值的见解。
从以表格格式排列数据,执行统计分析到生成图表,熊猫一切皆有可能,使数据分析师和科学家可以轻松地在一个库下执行所有任务。
简单来说,熊猫就像一个过滤器,我们可以用来净化我们的原始数据,以产生有价值的见解。
三、如何使用熊猫?
在窥视熊猫的工具之前,我们必须了解数据在熊猫中是如何存储和排列的。熊猫包含两种类型的数据结构:
- 系列 series
- 数据帧 dataframe
系列:它是一个一维数组,能够保存任何数据类型的数据。
names = ['Alex', 'Bob', 'John']
df = pd.Series(names, index=[1, 2, 3])
print(df)

数据帧: 数据帧是由行和列(如表)组成的二维数据结构。它是熊猫中最受欢迎的数据结构。
df = pd.read_csv("E:\emp_report.csv")
print(df)
我导入了一个CSV(逗号分隔值),一个使用逗号分隔值的分隔文本文件。在 pandas 中,我们可以使用 read_csv() 命令导入 CSV 文件,然后传递文件位置。

- head()
默认情况下,head 方法返回数据框的前五行。
print(df.head())

我们可以看到主数据框中有六行,但使用 head 命令,它打印了数据框的前五行。
甚至可以使用 head(n) 指定所需的行数;如果我们传递 head(12),它将打印数据框的前 12 行。
2. tail()
tail 方法类似于 head,但默认情况下,它不是打印顶部行,而是返回数据框的最后五行。
print(df.tail())

我们甚至可以使用 tail(n) 指定我们想要的底部行数;如果我们传递 tail(10),它将打印数据框的最后十行。
3.info()
info() 方法给出了数据框的完整描述,例如列数、每列的数据类型、数据框的内存使用情况等。
print(df.info())

4. describe()
describe() 方法给出了数据帧的完整统计分析,例如每列的最大值、最小值、百分位数、总非空值和标准偏差。
print(df.describe())

5. shape
Pandas 中的 shape 属性为我们提供了有关数据框形状的信息,即数据框中的行数和列数。
print(df.shape)

这里的六是指行数,五是指列数。
6. valuse
返回二维数组中数据框的所有值。
print(df.values)

7. column
列属性返回数据框中每列的标注或名称。
print(df.columns)

8. index
index 属性返回数据框的索引信息。
print(df.index)

9. count()
count() 方法返回每行或每列的非空值或非 NA 的总数。
print(df.count())

10. value_counts()
value_counts() 方法返回唯一值的计数。
print(df.value_counts('positions'))

11. sort_values()
排序是指按升序或降序排列数据。在 Pandas 中,我们可以使用 sort_values() 方法对列进行排序,方法是传递列名,然后将升序参数设置为 True 或 False。
print(df.sort_values('salary', ascending=True))

在这里,我传递了工资列并将升序参数设置为 True 作为升序;设置为 False 的升序参数将按降序排列工资列。
print(df.sort_values('salary', ascending=False))

还有一些参数,例如na_position和就地。na_position允许我们通过传递“第一个”或“最后一个”来选择如何排列 NaN。而当就地设置为 True 时,请就地执行操作。
12. group()
分组允许我们根据类别对数据进行分组,然后对这些类别执行函数。
print(df.groupby('sex')['salary'].sum())

在这里,我们根据性别一栏将所有员工分为两类,“M”代表男性,“F”代表女性,然后根据性别计算总工资。
13. isna()
使用 isna() 方法,我们可以检查数据框中的缺失值或 NaN(not-a-number),为 NaN 值返回 True,否则返回 False。
print(df.isna())

14. fillna()
fillna() 方法将数据框中的缺失值或 NaN(非数字)替换为指定值。
print(df.fillna({'sex':'F', 'positions': 'Developer', 'salary': 90000}))

15. dropna()
我们甚至可以使用 dropna() 方法删除数据框中缺少值或 NaN(非数字)的行。
print(df.dropna())

16. 重复()
duplicated() 方法允许我们检查数据框中的重复值。对于重复值返回 True;否则是假的。
print(df.duplicated(subset='emp_names'))

17. drop_duplicates()
drop_duplicates() 方法允许我们删除具有重复值的行。
print(df.drop_duplicates(subset='emp_names'))

18.plot()
我们可以使用 Pandas 库和 matplotlib 库的绘图方法绘制图形。下面是绘制简单条形图的示例。
import matplotlib.pyplot as plt
g = df.groupby('sex')['salary'].sum()
g.plot.bar(g)
plt.show()

四、结论
上面的例子表明,Pandas 命令快速而灵活,允许我们分析数据、处理缺失的数据,甚至帮助我们删除重复值和可视化数据。
相关文章:
熊猫:完整的初学者指南
pandas:完整的初学者指南 一、说明 在你的Python开发人员或数据科学之旅中,你可能已经多次遇到“熊猫”这个词,但仍然需要弄清楚它的作用。以及数据和熊猫之间的关系。所以让我向你解释一下。 根据最新估计,每天创建 328.77 亿 TB…...
【Go】Go语言并发编程:原理、实践与优化
在当今的计算机世界,多核处理器和并发编程已经成为提高程序执行效率的关键。Go语言作为一门极富创新性的编程语言,凭借其强大的并发能力,在这方面表现出色。本文将深入探讨Go语言并发编程的原理,通过实际代码示例展示其应用&#…...
HTTPS协议加密原理
目录 一、什么是HTTPS 二、什么是加密/解密 三、为什么要加密 四、常见的加密方式 1.对称加密 2. 非对称加密 五、HTTPS加密方式探讨 1.只使用对称加密 2.只使用非对称加密 3.非对称加密对称加密 4.非对称加密对称加密CA认证 六、总结 一、什么是HTTPS HTTP 协议&a…...
L1-034 点赞(Python实现) 测试点全过
题目 微博上有个“点赞”功能,你可以为你喜欢的博文点个赞表示支持。每篇博文都有一些刻画其特性的标签,而你点赞的博文的类型,也间接刻画了你的特性。本题就要求你写个程序,通过统计一个人点赞的纪录,分析这个人的特…...
MySQL 存储过程 循环处理数据 while repeat
最近搞数据,需要搞搞mysql 的存储过程,很多忘记了,就查查,然后总结下。。 文章目录 介绍循环repeat方式循环while方式外传 介绍 MySQL存储过程中使用循环处理数据 存储过程就像一份写好的由多条SQL组合的代码,这份SQ…...
基于配置类方式管理 Bean
目录 一、完全注解开发理解 二、配置类和扫描注解 三、Bean定义组件 四、Bean注解细节 五、import 扩展 一、完全注解开发理解 Spring 完全注解配置(Fully Annotation-based Configuration)是指通过 Java配置类 代码来配置 Spring 应用程序&#…...
最新CMS指纹识别技术
指纹识别 1.CMS简介 CMS(Content Management System,内容管理系统),又称整站系统或文章系统,用于网站内容管理。用户只需下载对应的CMS软件包,部署、搭建后就可以直接使用CMS。各CMS具有独特的…...
快速入门学习记录:常用代码、特定函数、复杂概念和特定功能说明
😀前言 本篇博文是关于Java入门学习的一些常用记录,希望你能够喜欢 🏠个人主页:晨犀主页 🧑个人简介:大家好,我是晨犀,希望我的文章可以帮助到大家,您的满意是我的动力&a…...
【win视频播放器】HEVC视频扩展
问题描述: 播放此视频需要新的编解码器 编解码器允许应用读取并播放不同文件。可以从Microsoft Store下载该编解码器 ¥7.00 现在获取 稍后再说 解决方法: 方法一:(该方法我正常使用) 链接:ht…...
React+Typescript 父子组件事件传值
好 之前我们将 state 状态管理简单过了一下 那么 本文 我们来研究一下事假处理 点击事件上文中我们已经用过了 这里 我们就不去讲了 主要来说说 父子之间的事件 我们直接来编写一个小dom 我们父组件 编写代码如下 import Hello from "./components/hello";functio…...
python人工智能和机器学习
人工智能和机器学习是当今科技领域最热门和前沿的话题之一。随着数据的爆炸式增长和计算能力的提升,人工智能和机器学习在各个领域都有广泛的应用。Python作为一种易学易用且功能强大的编程语言,已经成为人工智能和机器学习的首选工具之一。本文将介绍Py…...
[PyTorch][chapter 51][Auto-Encoder -1]
目录: 简介 损失函数 自动编码器的类型 一 AutoEncoder 简介: 自动编码器是一种神经网络,用于无监督学习任务.(没有标签或标记数据), 例如降维,特征提取和数据压缩. 主要任务: 1: 输入数据 …...
Uniapp或者微信小程序如何动态的计算Scrollview的高度
当一个小程序页面,顶部有搜索栏,或者分类查询时,我们想要保证它们能固定到顶部,就需要使用到Scrollview,那么如何确定Scrollview就是一个问题,这时我们可以使用以下代码来实现 setScrollHeight(view #scr…...
Abase数据库管理系统
Abase数据库管理系统的架构介绍如下: 1. 概述 Abase是一个开源的分布式数据库中间件,实现MySQL数据库的自动扩缩容、故障转移和查询路由。 2. 功能架构 - 读写分离:拆分为主从两套服务 - 自动扩缩容:根据负载水平完成扩容 - 负载均衡:基于查询解析的路由 - 故障转移:快速切换…...
系统架构设计高级技能 · 大数据架构设计理论与实践
系列文章目录 系统架构设计高级技能 软件架构概念、架构风格、ABSD、架构复用、DSSA(一)【系统架构设计师】 系统架构设计高级技能 系统质量属性与架构评估(二)【系统架构设计师】 系统架构设计高级技能 软件可靠性分析与设计…...
ubuntu上使用osg3.2+osgearth2.9
一、介绍 在ubuntu上使用osgearth加载三维数字地球,首先要有osg和osgearth的库,这些可以直接使用apt-get下载安装,但是版本有些老,如果需要新版本的就需要自己编译。 #查看现有版本 sudo apt-cache madison openscenegraph #安装…...
C语言巧妙打印64位整数
使用C语言打印64位整数时,如果用的是32位编译器,那么打印如下, int64_t data 0x1234567890123456; printf("0x%llx\n", data);如果是64位编译器,那么打印代码如下, int64_t data 0x1234567890123456; pr…...
c语言每日一练(11)
前言:每日一练系列,每一期都包含5道选择题,2道编程题,博主会尽可能详细地进行讲解,令初学者也能听的清晰。每日一练系列会持续更新,暑假时三天之内必有一更,到了开学之后,将看学业情…...
SLAM十四讲学习笔记 第二期:部分课后实践代码
持续更新.... 前期准备第二讲实验一:简单输出 第五讲任务一:imageBasics(Ubuntu配置opencv)任务二:双目匹配点云(Ubuntu配置pangolin)检验部分我认为可以加深对CMake的理解 任务三:r…...
Android kotlin 跳转手机热点开关页面和判断热点是否打开
Android kotlin 跳转手机热点开关页面和判断热点是否打开 判断热点是否打开跳转手机热点开关页面顺带介绍一些其他常用的设置页面跳转 其他热点的一些相关知识Local-only hotspot 参考 判断热点是否打开 网上方法比较多,我这边使用了通过WifiManager 拿反射的getWi…...
XCTF-web-easyupload
试了试php,php7,pht,phtml等,都没有用 尝试.user.ini 抓包修改将.user.ini修改为jpg图片 在上传一个123.jpg 用蚁剑连接,得到flag...
日语AI面试高效通关秘籍:专业解读与青柚面试智能助攻
在如今就业市场竞争日益激烈的背景下,越来越多的求职者将目光投向了日本及中日双语岗位。但是,一场日语面试往往让许多人感到步履维艰。你是否也曾因为面试官抛出的“刁钻问题”而心生畏惧?面对生疏的日语交流环境,即便提前恶补了…...
Ubuntu系统下交叉编译openssl
一、参考资料 OpenSSL&&libcurl库的交叉编译 - hesetone - 博客园 二、准备工作 1. 编译环境 宿主机:Ubuntu 20.04.6 LTSHost:ARM32位交叉编译器:arm-linux-gnueabihf-gcc-11.1.0 2. 设置交叉编译工具链 在交叉编译之前&#x…...
SciencePlots——绘制论文中的图片
文章目录 安装一、风格二、1 资源 安装 # 安装最新版 pip install githttps://github.com/garrettj403/SciencePlots.git# 安装稳定版 pip install SciencePlots一、风格 简单好用的深度学习论文绘图专用工具包–Science Plot 二、 1 资源 论文绘图神器来了:一行…...
QMC5883L的驱动
简介 本篇文章的代码已经上传到了github上面,开源代码 作为一个电子罗盘模块,我们可以通过I2C从中获取偏航角yaw,相对于六轴陀螺仪的yaw,qmc5883l几乎不会零飘并且成本较低。 参考资料 QMC5883L磁场传感器驱动 QMC5883L磁力计…...
无法与IP建立连接,未能下载VSCode服务器
如题,在远程连接服务器的时候突然遇到了这个提示。 查阅了一圈,发现是VSCode版本自动更新惹的祸!!! 在VSCode的帮助->关于这里发现前几天VSCode自动更新了,我的版本号变成了1.100.3 才导致了远程连接出…...
使用分级同态加密防御梯度泄漏
抽象 联邦学习 (FL) 支持跨分布式客户端进行协作模型训练,而无需共享原始数据,这使其成为在互联和自动驾驶汽车 (CAV) 等领域保护隐私的机器学习的一种很有前途的方法。然而,最近的研究表明&…...
苍穹外卖--缓存菜品
1.问题说明 用户端小程序展示的菜品数据都是通过查询数据库获得,如果用户端访问量比较大,数据库访问压力随之增大 2.实现思路 通过Redis来缓存菜品数据,减少数据库查询操作。 缓存逻辑分析: ①每个分类下的菜品保持一份缓存数据…...
【2025年】解决Burpsuite抓不到https包的问题
环境:windows11 burpsuite:2025.5 在抓取https网站时,burpsuite抓取不到https数据包,只显示: 解决该问题只需如下三个步骤: 1、浏览器中访问 http://burp 2、下载 CA certificate 证书 3、在设置--隐私与安全--…...
相机从app启动流程
一、流程框架图 二、具体流程分析 1、得到cameralist和对应的静态信息 目录如下: 重点代码分析: 启动相机前,先要通过getCameraIdList获取camera的个数以及id,然后可以通过getCameraCharacteristics获取对应id camera的capabilities(静态信息)进行一些openCamera前的…...
