首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

这些很实用的Pandas技巧,你都会了吗?-乌森数据可视化系列(1)

作者介绍

莲石东路@乌森

心之所向,无界成长。从底层架构到应用实战,聊聊炼数成金背后的故事。

持续更新数据治理、数据科学、数据可视化、空间计算系列文章。

使用Python做数据分析,必然要提及的一个工具就是pandas,它是一个非常强大的数据分析工具包,集数据处理、分析、可视化于一身的工具,非常强大好用。在讲下一篇的Ploty.js之前我们先总结一下Pandas的使用。

01

Pandas数据结构:一维数组(Series)

1.1

创建Series数组

Series是一个一维的数据类型,其中每一个元素都有一个标签。类似于Numpy中元素带标签的数组。其中,标签可以是数字或者字符串。

1.2

Series数组的索引

Series对象提供了几种不同的索引方法。

(1) 枚举索引

枚举索引按照index值进行索引。index值默认使用下标,下标总是从0开始的,而且索引值总是数字。也可以用关键字为index赋值,关键字既可以是数字,也可以是字符串等。

(2)布尔索引

切片索引使用的是下标,不会受到index的影响。

(3)切片索引

02

Pandas数据结构:数据表(Dataframe)

Pandas提供了一种名为Dataframe的二维表结构。可以把DataFrame想象成一个电子表格,它由行名(index)、列名(columns)和数据(values)组成。

2.1

创建Dataframe数据表

(1)从字典创建

(2)从Series创建

(3)从二维数组直接创建

由二维数组直接创建DataFrame,得到一样形状的结果数据,如果不指定index和columns,两者均返回默认数字格式。

2.2

Dataframe数据表的遍历

2.3

Dataframe数据表的索引

(1)枚举索引

(2)布尔索引

(3)切片索引

(4)loc和iloc索引

2.4

多索引Dataframe数据表

03

Pandas数据 I/O

了解更多

04

Series和DataFrame的基本操作

4.1

Series和DataFrame添加删除元素

(1)Series添加删除元素

(2)DataFrame添加删除元素

4.2

Series和DataFrame数据排重

4.3

Series和DataFrame数据替换和映射

(1)数据替换

(2)数据映射

map()函数就是一个数据到一个数据的映射关系,中间没有对数据的增删改;map(function,list)就是将list里面的数据取出来然后用于function。

4.4

DataFrame行列变换

(1)使用 numpy 实现转置

(2)利用 pandas 多级索引实现转置

stack() 会将数据的列”旋转”为行,新的行索引比原来的行索引低了一个级别(0的级别最高)。unstack() 将数据的行”旋转”为列,默认旋转的是级别最低的索引。

4.5

DataFrame合并与拆分

(1)堆叠

concat()能够实现轴向数据集的堆叠。

(2)连接

merge()可根据一个或者多个键将不同的DataFrame连接在一起,类似于SQL数据库中的join操作。

(3)拆分

4.6

DataFrame排序

4.7

DataFrame分组

05

Pandas与数据统计

5.1

Series的统计

5.1

DataFrame的统计

06

小技巧:Pandas提速攻略

6.1

标准循环—101.6秒

DataFrame是具有行和列的Pandas对象。如果使用循环,需要遍历整个对象。Python不能利用任何内置函数,而且速度很慢。

6.2

使用Pandas内置函数:iterrows()—6.8秒,快15倍

在第一个示例中,循环遍历了整个DataFrame。iterrows()为每一行返回一个Series,它以索引对的形式遍历DataFrame,以Series的形式遍历感兴趣的列。这使得它比标准循环更快。

6.3

apply()方法—1.7秒,快59.7倍

apply 本身并不快,但与DataFrame结合使用时,它具有优势。

6.3

Pandas向量化—0.04秒,快2540倍

可以利用向量化的优点来创建非常快的代码。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20210204A01HIZ00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券