pandas plot label_数据科学| 手把手教你用 pandas 索引、汇总、处理缺失数据

本文详细介绍Pandas库处理数据的方法,包括数学统计、缺失数据处理、索引与选取、算术运算、函数应用、排序与汇总等核心功能,并提供丰富的实例帮助理解。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

d2fb278ec06a11d1ae012af16f5a7670.png

作者:Paul

9eead1fb8e843daef30f84aa913ffe5f.png

编者按:

pandas提供了很多常用的数学和统计方法,本文中将用十分详细的例子来具体进行介绍;另外在许多数据分析工作中,缺失数据是经常发生的,将会具体介绍如何处理缺失数据。本文十分详细并实在低介绍了pandas处理数据的基本方法,十分建议各位对pandas学习感兴趣的同学下载代码亲自运行进行实际操作。

pandas 索引对象

pandas的索引对象负责管理轴标签和其他元数据(比如轴名称等)。构建Series或DataFrame时,所用到的任何数组或其他序列的标签都会被转换成一个Index。

Index对象是不可修改的(immutable),因此用户不能对其进行修改。不可修改性非常重要,因为这样才能使Index对象在多个数据结构之间安全共享。

pandas中主要的index对象

8f7b4132d709f3c469c3bc33ea83759b.png

Index的方法和属性

68053a2418ca1a40cfff3324f8977da5.png

d8ca8e5ab0afe8857ad43212380341bb.png

实例如下

322ec7d79cd698a565ac9fa16a20446a.png

d95642771ebc827e1cfb2814d25b3257.png

a4de1c14c20bd792d0d7ea314557f7ea.png

b3c3f2dbdc2484faf4e0da01526d8aee.png

Pandas 重新索引

● 创建一个适应新索引的新对象,该Series的reindex将会根据新索引进行重排。如果某个索引值当前不存在,就引入缺失值。

● 对于时间序列这样的有序数据,重新索引时可能需要做一些插值处理。method选项即可达到此目的。

reindex函数的参数

93c98ce05b0cfa7f7d906f0af05bd4d0.png

a600d2c0bb15bbf45fce61d59e3b1977.png

8c91d5cce97fb05b813de625d489421f.png

bf0335e5f1ae640c30b41b4f012b313c.png

41fa1ba1e2202f9f5eb2d384945647b8.png

c494580e1f376362abca295025041ab8.png

bd4ffab7c73b0f3ffeada1af7f473953.png

090582db1cde2ca55a7666ad6ce3d5dc.png

185036ccd6e0e20ce79fb7294b7bb82b.png

丢弃指定轴上的项

丢弃某条轴上的一个或多个项很简单,只要有一个索引数组或列表即可。由于需要执行一些数据整理和集合逻辑,所以drop方法返回的是一个在指定轴上删除了指定值的新对象

342991a3a29754ea2aa7600eda82e534.png

83c30fe0e8bb934fb1fe4903f6d12e32.png

7a1664a89df8b2be7323d77a80ae3c65.png

c95354061879216d0d25e69eadb0eec1.png

c95354061879216d0d25e69eadb0eec1.png

Pandas 索引、选取和过滤

● Series索引(obj[...])的工作方式类似于NumPy数组的索引,只不过Series的索引值不只是整数。

● 利用标签的切片运算与普通的Python切片运算不同,其末端是包含的(inclusive)。

● 对DataFrame进行索引其实就是获取一个或多个列

● 为了在DataFrame的行上进行标签索引,引入了专门的索引字段ix。

DataFrame的索引选项

901f5fd2424ea04632e0aecd18b89a69.png

9bff5e07f6ab38bed79883e043d0e047.png

79b835d116a273fde900da48145cf393.png

472c783e57ef7b65ea4009c2607c252c.png

63d7da19288bf1164eb5d38dc3c336f0.png

f864e2c252e8d030895cafc67f6b1012.png

27a6deb9e69214759a8e6fc848a5f399.png

5a1b36ed26aed556d1f60fb8da9ae617.png

bb94dbd4917f1f00d7ea80d841910d4c.png

Pandas 算术运算和数据对齐

● 对不同的索引对象进行算术运算

● 自动数据对齐在不重叠的索引处引入了NA值,缺失值会在算术运算过程中传播。

● 对于DataFrame,对齐操作会同时发生在行和列上。

● fill_value参数

● DataFrame和Series之间的运算

a50929c019c3c95124772d0bc6182179.png

ab83603187f6069837ad94c081f48cdb.png

dde1f476bf5ae003b1a84e5609697093.png

a2b865fad65dd5b0a4b3722b9fcca6ad.png

3763e22bc38f3c80e073367b972be295.png

64e88d17ab11345a3ddb9f41d74d21b9.png

d269b5c83d414a3ef51cd7b4f4677df0.png

6ea84e58c1f918d73ac31a79c122fb1c.png

Pandas 函数应用和映射

● numpy的ufuncs(元素级数组方法)

● DataFrame的apply方法

● 对象的applymap方法(因为Series有一个应用于元素级的map方法)

c05d74a1efc824deac41ed3480f66110.png

dc14ab3cf81a9124bdc83780ab3c355c.png

cdd0ff7537bf4c1b992ee910c2ad0cf5.png

f88176df11e3d799e5aff189267b1f4d.png

3490cd3d2a0754318ffe5d03cc99b7d4.png

afaa0bc7e16eb675548b830615fc6a2f.png

Pandas 排序和排名

● 对行或列索引进行排序

● 对于DataFrame,根据任意一个轴上的索引进行排序

● 可以指定升序降序

● 按值排序

● 对于DataFrame,可以指定按值排序的列

● rank函数

bbd1bdc029b6eefc36e894a76c289b8b.png

10ecf84e103ebf342d2110b13aeb1748.png

ee2cf65d72f6c757f8d1013983f5bda6.png

a8b48db2a086892a6bb0d94850f451f9.png

a1f7fd876dbb90cebaa2482267447984.png

7782816a5449dc7a9306fdae5451e132.png

219071d16e51474e799725720df1d248.png

1e2416258508d1edd2a0181fbc4f4e37.png

Pandas 带有重复值的索引

● 对于重复索引,返回Series,对应单个值的索引则返回标量。

cda5a06a5db163f91b2199db9e5f5c0f.png

076d0a1ea66f4a4a8eebf774eeb55870.png

Pandas 汇总和计算描述统计

● 常用方法选项

3944cbec37c14616cc66543cba1218e1.png

Pandas 常用描述和汇总统计函数

0e224c9f8d0cd68cdcdb6d78ad13c42b.png

c3be22708ae0c90522305bf8d6ae894b.png

● 数值型和非数值型的区别

● NA值被自动排查,除非通过skipna选项

730a70da8e9bc0ff1ae09a480c764392.png

b531c3af60ca83dbff13e5512afbd130.png

d4f0ccb63a63b20b6b2f23b5adc9eac5.png

4afc9f5741b907467ddb3042b7d9dc44.png

fa82932b19608c89dcce1d8ce727e735.png

02333e98c129a6ffd8f816dfe983253c.png

Pandas 汇总和计算描述统计 相关系数与协方差

● 相关系数:相关系数是用以反映变量之间相关关系密切程度的统计指标。

● 协方差:从直观上来看,协方差表示的是两个变量总体误差的期望。如果两个变量的变化趋势一致,也就是说如果其中一个大于自身的期望值时另外一个也大于自身的期望值,那么两个变量之间的协方差就是正值;如果两个变量的变化趋势相反,即其中一个变量大于自身的期望值时另外一个却小于自身的期望值,那么两个变量之间的协方差就是负值。

Pandas 汇总和计算描述统计 唯一值以及成员资格

常用方法

b4b2583653c0be3e27370c1fe45b699a.png

d6d72da532b5418a4a8a81782db9662e.png

c12f526f54796adfa07948bc8e0e431d.png

bff3a0aa5f32f3aecebffa5b6b74bbfd.png

318c52037615e5b4d8025236303290a9.png

Pandas 处理缺失数据

● NA处理方法

739bbd50ffefcc3ecbdce1990bbef7b5.png

● NaN(Not a Number)表示浮点数和非浮点数组中的缺失数据

● None也被当作NA处理

5d0d1083f8e3a10de759a3f79a8c2b6b.webp

09bbbda77e8263261381337d2183f263.png

Pandas 滤除缺失数据

● dropna

● 布尔索引

● DatFrame默认丢弃任何含有缺失值的行

● how参数控制行为,axis参数选择轴,thresh参数控制留下的数量

5d0d1083f8e3a10de759a3f79a8c2b6b.webp

667ef322729ad9b9ce058573936da492.png

38ea024f3be650ff17edf94477c14ac4.png

9e80f1412d310d1de2b13562ec387ac9.png

Pandas 填充缺失数据

● fillna

● inplace参数控制返回新对象还是就地修改

37c272a925a04442a335525980725133.png

69aa7118cf82c5fcbff98b372b14f8d1.png

dc073901324bf6dd38493e06512f3f5b.png

2ae19b1e9ca18bef18915d5ae95b0b9e.png

11b9d3cea91031476367936982f81420.png

a7d578f9feba62303f60bb7706939750.png

8e3113824b73d42a97bf973ca75abee4.png

b926c583fecb632dee261e22144233c7.png

Pandas 层次化索引

● 使你能在一个轴上拥有多个(两个以上)索引级别。抽象的说,它使你能以低纬度形式处理高维度数据。

● 通过stack与unstack变换DataFrame

2192f8160844c1d828fc2eff0b71787e.png

b7520e7a18a7265efc82768adad89959.png

1d3012f762333c71ced4845184a12ced.png

872c5e04112e43ef12d8dc16d3f1e047.png

b48a11c52c1e2aabd8110b444e13df89.png

3a163f3d8ad02c35a0de314fd166033a.png

重新分级顺序

● 索引交换

● 索引重新排序

60b86ce445fee39949a366c34ff40dd9.png

3ada64ba6643c81da32f0f620af30491.png

根据级别汇总统计

● 指定索引级别和轴

af66a40ea3a87d00a6afae47bd203249.png

dce45f7ade52be7b76fe1249c78813b4.png

层次化索引 使用DataFrame的列

● 将指定列变为索引

● 移除或保留对象

● reset_index恢复

2b65a0ab22e2c0ed7eb62f971a5398c6.png

952ea1f4bdf3c3ff72799f502afad30f.png

整数索引

● 歧义的产生

● 可靠的,不考虑索引类型的,基于位置的索引。

c61acfec5f5696bc4a50c6d3cdaafca9.png

20de11a9cd489e34d68e388ee618de2d.png

6814bf6b7a10d0b2e7e9c4ae950f9611.png

4a11a115a025a9ae6f5260b75f692b19.png

面板(Pannel)数据

通过三维ndarray创建pannel对象

● 通过ix[...]选取需要的数据

● 访问顺序:item -> major -> minor

● 通过stack展现面板数据

4e3711e88d190eceb9cfcac1b7fb94e1.png

相关文章推荐

要把一件事说的有滋有味,得要慢慢地说,不能着急,这样才能体察人情

读完这篇文章不过瘾?请继续关注我们上一期的文章,来看看我们是如何用python分析周杰伦专辑所有的歌词,并用热词重写《说好不哭》。

点击蓝字标题,即可阅读 数据科学 | 分析周杰伦75775字歌词后,我们用他最爱的词重写了《说好不哭》

其他

数据科学 | 避坑!Python特征重要性分析中存在的问题

数据科学 | 『运筹OR帷幄』数据分析、可视化、爬虫系列教程

4e3711e88d190eceb9cfcac1b7fb94e1.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值