推荐收藏!5万字图解pandas

本文是一篇深入浅出的Pandas教程,通过丰富的图解和实例,介绍了Pandas的基础知识、核心操作,包括数据导入、数据结构、数据处理、排序、分组、数据透视和可视化等。适合Python初学者和数据分析人员学习,内容覆盖从安装到高级特性的全面指南。
摘要由CSDN通过智能技术生成

大家好,今天我用图解的方式讲解pandas的用法,内容较长建议收藏,梳理不易,点赞支持。

学习 Python 编程,给我的经验就是:技术要学会分享、交流,不建议闭门造车。一个人可能走的很快、但一堆人可以走的更远。如果你希望技术交流,可以关注我

关注公众号:Python技术训练营

解锁 《python百万字教程,手把手助你从零进阶拿高薪》,让学习更贴近未来实战

内容包含

python百万字教程,手把手助你从零进阶拿高薪(十一模块)

1.hello,初识python

2.python大数据技术体系

3.AI研发,快人一步

4.全栈开发体系,你不能错过的内容

5.掌握核心,python核心编程

6.python并发编程

7.python数据库编程

8.爬虫入门必学

9.python框架源码分析

10.爬虫必备JS逆向

11.多学一点,加薪更稳定Android逆向

整理不易,关注一下吧ღ( ´・ᴗ・` )比心🤔

第一部分:数据分析核⼼–pandas

前⾔Python作为⼀门数据可视化很好的语⾔,可以使⽤像matplotlib等库画出图形,处理数据主要使⽤pandas这⾥主要讨论Pandas

1.初识pandas

⼤多数⼈只要提及pandas,基本都知道,只要是学习python的⼈Pandas 是 Python 语⾔的⼀个扩展程序库,⽤于数据分析。Pandas 是⼀个开放源码、BSD 许可的库,提供⾼性能、易于使⽤的数据结构和数据分析⼯具。Pandas 名字衍⽣⾃术语 “panel data”(⾯板数据)和 “Python data analysis”(Python 数据分析)。Pandas ⼀个强⼤的分析结构化数据的⼯具集,基础是 Numpy(提供⾼性能的矩阵运算),其次数series,还有⼀个DataFrame,这三个⽐较常⽤。Pandas 可以从各种⽂件格式⽐如 CSV、JSON、SQL、Microsoft Excel 导⼊数据。Pandas 可以对各种数据进⾏运算操作,⽐如归并、再成形、选择,还有数据清洗和数据加⼯特征。Pandas ⼴泛应⽤在学术、⾦融、统计学等各个数据分析领域。

2.Pandas的主体

Pandas 的主要数据结构是 Series (⼀维数据)与 DataFrame(⼆维数据),这两种数据结构⾜以处理⾦融、统计、社会科学、⼯程等领域⾥的⼤多数典型⽤例。Series:带标签的⼀维同构数组,⼀种类似于⼀维数组的对象,它由⼀组数据(各种Numpy数据类型)以及⼀组与之相关的数据标签(即索引)组成。DataFrame:带标签,⼤⼩可变,⼆维异构表格。⼀个表格型的数据结构,它含有⼀组有序的列,每列可以是不同的值类型(数值、字符串、布尔型值)。DataFrame 既有⾏索引也有列索引,它可以被看做由 Series 组成的字典(共同⽤⼀个索引)。

3.Pandas的安装

⼀般情况下只要电脑上安装Python后,并将python环境布置⼊path之中,pandas安装可以在CMD中或者在Anaconda终端进⾏安装安装命令

pip install pandas
4.Pandas的应⽤

1. 导⼊pandas库

# 导⼊pandas库
import pandas as pd

2. pandas之seriesPandas Series类似表格中的⼀个列(column),类似于⼀堆数组,可以保存为任何数据类型Series由索引(index)和列组成,函数如下

pandas.Series(data, index, dtype, name, copy)

参数说明:
data:⼀组数据(ndarray 类型)。
index:数据索引标签,如果不指定,默认从 0 开始。
dtype:数据类型,默认会⾃⼰判断。
name:设置名称

第二部分:Pandas 展示

如图:

它描述了一个在线商店的不同产品线,共有四种不同的产品。与前面的例子不同,它可以用NumPy数组或Pandas DataFrame表示。但让我们看一下它的一些常见操作。

1.排序

使用Pandas按列排序更具可读性,如下所示:

这里argsort(a:,1)计算使a的第二列按升序排序的排列,然后a相应地对a的行重新排序。Pandas可以一步完成。

2.按多列排序

如果我们需要使用weight列来对价格列进行排序,情况会变得更糟。这里有几个例子来说明我们的观点:

在NumPy中,我们先按重量排序,然后再按价格排序。稳定排序算法保证第一次排序的结果不会在第二次排序期间丢失。NumPy还有其他实现方法,但没有一种方法像Pandas那样简单优雅。

3. 添加一列

使用Pandas添加列在语法和架构上要好得多。下面的例子展示了如何操作:

Pandas不需要像NumPy那样为整个数组重新分配内存;它只是添加了对新列的引用,并更新了列名的registry

4. 快速元素搜索

在NumPy数组中,即使你查找的是第一个元素,你仍然需要与数组大小成正比的时间来查找它。使用Pandas,你可以索引你期望被查询最多的列,并将搜索时间减少到一个常量

index列有以下限制。

  • 它需要内存和时间来构建。
  • 它是只读的(需要在每次追加或删除操作后重新构建)。
  • 这些值不需要是唯一的,但是只有当元素是唯一的时候加速才会发生。
  • 它需要预热:第一次查询比NumPy稍慢,但后续查询明显快得多
5. 按列连接(join)

如果你想从另一张表中获取基于同一列的信息,NumPy几乎没有任何帮助。Pandas更好,特别是对于1:n的关系。

Pandas join具有所有熟悉的“内”、“左”、“右”和“全外部”连接模式。

6.按列分组

数据分析中的另一个常见操作是按列分组。例如,要获得每种产品的总销量,你可以这样做:

除了sum之外,Pandas还支持各种聚合函数:mean、max、min、count等。

7. 数据透视表

Pandas最强大的功能之一是“枢轴”表。这有点像将多维空间投影到二维平面上。

虽然用NumPy当然可以实现它,但这个功能没有开箱即用,尽管它存在于所有主要的关系数据库和电子表格应用程序(Excel,WPS)中。

Pandas用df.pivot_table将分组和旋转结合在一个工具中。

简而言之,NumPy和Pandas的两个主要区别如下:

现在,让我们看看这些功能是否以性能损失为代价

8、Pandas速度

我在Pandas的典型工作负载上对NumPy和Pandas进行了基准测试:5-100列,10³- 10⁸行,整数和浮点数。下面是1行和1亿行的结果:

看起来在每一次操作中,Pandas都比NumPy慢!

当列数增加时,情况不会改变(可以预见)。至于行数,依赖关系(在对数尺度下)如下所示:

对于小数组(少于100行),Pandas似乎比NumPy慢30倍,对于大数组(超过100万行)则慢3倍。

怎么可能呢?也许是时候提交一个功能请求,建议Pandas通过df.column.values.sum()重新实现df.column.sum()了?这里的values属性提供了访问底层NumPy数组的方法,性能提升了3 ~ 30倍。

答案是否定的。Pandas在这些基本操作方面非常缓慢,因为它正确地处理了缺失值。Pandas需要NaNs (not-a-number)来实现所有这些类似数据库的

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值