熊猫:完整的初学者指南
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…...
基于算法竞赛的c++编程(28)结构体的进阶应用
结构体的嵌套与复杂数据组织 在C中,结构体可以嵌套使用,形成更复杂的数据结构。例如,可以通过嵌套结构体描述多层级数据关系: struct Address {string city;string street;int zipCode; };struct Employee {string name;int id;…...
[特殊字符] 智能合约中的数据是如何在区块链中保持一致的?
🧠 智能合约中的数据是如何在区块链中保持一致的? 为什么所有区块链节点都能得出相同结果?合约调用这么复杂,状态真能保持一致吗?本篇带你从底层视角理解“状态一致性”的真相。 一、智能合约的数据存储在哪里…...
Docker 离线安装指南
参考文章 1、确认操作系统类型及内核版本 Docker依赖于Linux内核的一些特性,不同版本的Docker对内核版本有不同要求。例如,Docker 17.06及之后的版本通常需要Linux内核3.10及以上版本,Docker17.09及更高版本对应Linux内核4.9.x及更高版本。…...
Oracle查询表空间大小
1 查询数据库中所有的表空间以及表空间所占空间的大小 SELECTtablespace_name,sum( bytes ) / 1024 / 1024 FROMdba_data_files GROUP BYtablespace_name; 2 Oracle查询表空间大小及每个表所占空间的大小 SELECTtablespace_name,file_id,file_name,round( bytes / ( 1024 …...
高危文件识别的常用算法:原理、应用与企业场景
高危文件识别的常用算法:原理、应用与企业场景 高危文件识别旨在检测可能导致安全威胁的文件,如包含恶意代码、敏感数据或欺诈内容的文档,在企业协同办公环境中(如Teams、Google Workspace)尤为重要。结合大模型技术&…...
CMake 从 GitHub 下载第三方库并使用
有时我们希望直接使用 GitHub 上的开源库,而不想手动下载、编译和安装。 可以利用 CMake 提供的 FetchContent 模块来实现自动下载、构建和链接第三方库。 FetchContent 命令官方文档✅ 示例代码 我们将以 fmt 这个流行的格式化库为例,演示如何: 使用 FetchContent 从 GitH…...
RNN避坑指南:从数学推导到LSTM/GRU工业级部署实战流程
本文较长,建议点赞收藏,以免遗失。更多AI大模型应用开发学习视频及资料,尽在聚客AI学院。 本文全面剖析RNN核心原理,深入讲解梯度消失/爆炸问题,并通过LSTM/GRU结构实现解决方案,提供时间序列预测和文本生成…...
《C++ 模板》
目录 函数模板 类模板 非类型模板参数 模板特化 函数模板特化 类模板的特化 模板,就像一个模具,里面可以将不同类型的材料做成一个形状,其分为函数模板和类模板。 函数模板 函数模板可以简化函数重载的代码。格式:templa…...
CVE-2020-17519源码分析与漏洞复现(Flink 任意文件读取)
漏洞概览 漏洞名称:Apache Flink REST API 任意文件读取漏洞CVE编号:CVE-2020-17519CVSS评分:7.5影响版本:Apache Flink 1.11.0、1.11.1、1.11.2修复版本:≥ 1.11.3 或 ≥ 1.12.0漏洞类型:路径遍历&#x…...
【 java 虚拟机知识 第一篇 】
目录 1.内存模型 1.1.JVM内存模型的介绍 1.2.堆和栈的区别 1.3.栈的存储细节 1.4.堆的部分 1.5.程序计数器的作用 1.6.方法区的内容 1.7.字符串池 1.8.引用类型 1.9.内存泄漏与内存溢出 1.10.会出现内存溢出的结构 1.内存模型 1.1.JVM内存模型的介绍 内存模型主要分…...
