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

本文详细介绍了pandas库在数据处理中的关键操作,包括索引对象、重新索引、数据对齐、缺失数据处理、统计分析等方面,通过实例展示了如何高效地操作和分析数据。
摘要由CSDN通过智能技术生成

f635e472f270b64115e001514faa6505.png

作者:Paul

564bc679b4288b43fd2a8677930959d9.png

编者按:

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

pandas 索引对象

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

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

pandas中主要的index对象

564e12c47b326314bc4e9c3a2d60cfe9.png

Index的方法和属性

3890d0789059d10a014611a93046d455.png

375c331f1178b4fdb99c52d1bcbc291b.png

实例如下

dc18d65d3e5e27dfabb9d3560d89101f.png

d62c34d84a74f8702b05d38e7a8621c9.png

117d3265cafdb3ead0405db3361da5aa.png

1fa189bc88aee1d3041e8f24bc5e1cb1.png

Pandas 重新索引

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

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

reindex函数的参数

b08f26e7f2b3db73fa2bf573b7fb6084.png

39e332362619b2982a21e24c4ca6ce3e.png

56607c98f24fa51e629d78891ab52eda.png

bf02a0e61a619e41deb650af5ea71aab.png

65820984bd9d56efc2459f5088aa2530.png

0b959a3a57393215c684e9be24a12253.png

fc046660b1cf915c430563b92bb6c56f.png

69730890666880683d30b70dc9fef8f2.png

b6243ff4b854c8798dde82853d16e370.png

丢弃指定轴上的项

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

e482dee8f7d00299c00fa760a5e250b7.png

10938bad79241fa5ecd6bb768c9b4259.png

fb0b2468fbb2746e6b22b16759574a07.png

b697477f9f4d1026b0b4dc83fd8e2ace.png

b697477f9f4d1026b0b4dc83fd8e2ace.png

Pandas 索引、选取和过滤

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

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

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

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

DataFrame的索引选项

6943493a03218e491aa88c7505191813.png

2a0474d98fe6499e10f6b05a0f6e60bc.png

6ab7c63c6b25bf9c5a173a4f7c3fc59c.png

58afdc2100751839aecba446b39d7545.png

661ea16380269f2df58ff7c1906dd474.png

181cbf2989d4364f4decec8013a66271.png

c0faa1c17aa57a353d391adc8e861c93.png

92ab8afadc638d537708f2cd10913fa3.png

1a24e35ff227396ecd2c391033432fd2.png

Pandas 算术运算和数据对齐

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

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

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

● fill_value参数

● DataFrame和Series之间的运算

674018ec8ec19c9de962e3b5a1d6a981.png

fb18403fd4813110bcf23634599150e7.png

bf49d2191ccd503f9be4b2df950a4a55.png

02d90e4a6c7a6bdc7845a3e61f1a21ee.png

60ebd197bde537cd5f1098d403f7480b.png

374680927a3d8e87ecd08d0bcc83f2d8.png

5027d275de435ee1f9434e9979c6be44.png

546fed58c2be5e72393c563dc7263b7a.png

Pandas 函数应用和映射

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

● DataFrame的apply方法

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

0bda38fe4bac9fc669126cf60baea9a0.png

e363bea1cb774cdefddf3d20838d8c5c.png

867b093aaaa7ec47a9e69bcb1b6d3be0.png

4eaa0e3957972b0c43960b75b48a8645.png

82d0c6bee02620df6b3404352e1b1c6b.png

b46bfbebb326cfd6d7f498c6653e0d95.png

Pandas 排序和排名

● 对行或列索引进行排序

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

● 可以指定升序降序

● 按值排序

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

● rank函数

35f01dca81e41a931e4fd3cd354486b0.png

f354dccde7b3783db65aef817832a96b.png

5e7f6303b57615a03fefa53720aea3d6.png

d22b1e91fe2acd84a8a09f8cfdfdbd2c.png

1cc45b460da67baec5339cc403e170c5.png

89bf4f8c205a6d05fa62c6d6f69c3a59.png

df7bc2d3c7d80035176fbcd7f5968ca5.png

00c62c88d36f0fefe35a5db61ce74a0c.png

Pandas 带有重复值的索引

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

47162a899ccd8ea68ac428bc0bbbe92f.png

76dfb9d85da6bcc186e607c9f33ef6e7.png

Pandas 汇总和计算描述统计

● 常用方法选项

888f2cabd1ae4fe6fe4b97b6d3d0e30d.png

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

af69b5e41d3b4da8c372624a2a3a91aa.png

a394ddb07156c5c950febe7a22596f8f.png

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

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

e9e3fca6e4485245fa39090dceb1e3ad.png

05f00f665c59685749f8dd9bd35352c3.png

e9c7030e74a4bdff86ab3e085a13eabc.png

99087a85cf1ea113156547f3721f86f2.png

0d91bebfda3eadae3d80262579fcecd4.png

3f129e43fbda6e22f26b7aef69fa8d8d.png

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

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

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

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

常用方法

30560f2ab6d7c0597795f3cd806c8fe7.png

278996b615463e68972bab955f529f00.png

f371726920ce1a963a0ae69bf8141821.png

266c59dc3ace67a643c3362c29630ad6.png

db7430a379264ee9fec1aea547fb80ab.png

Pandas 处理缺失数据

● NA处理方法

19ca8cc3602056de5b6233a8dcdd83c8.png

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

● None也被当作NA处理

11e768d54a036d9aa09ee067a4b3395f.png

a9a2160a39b1bc3f719adf7dda8b17d4.png

Pandas 滤除缺失数据

● dropna

● 布尔索引

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

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

11e768d54a036d9aa09ee067a4b3395f.png

7bdc3c967387744dad605bcaba799281.png

f5a7d77ebc0bf02bafc679f3a9cd7d44.png

43ad7d89488b0be4f95ddd2da63cb7a2.png

Pandas 填充缺失数据

● fillna

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

9615551ec6e0016e7c885ebe80aac101.png

33fcd9f4102a2034bd6623e217beea73.png

417ced6daf2d0efae08d7bcdb35e6c9e.png

34fa65ca3316870f77fb66e73eca7c39.png

60bf341c8d0dc8cd43266063fb27ae7d.png

ea2efba34d47a6addbc256c04e14a889.png

2ca5a57f61fd0989b01ed0e3ba6e41ad.png

af2cf5e4834e5f2458f2c84ba4288620.png

Pandas 层次化索引

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

● 通过stack与unstack变换DataFrame

7f61ff96a0984b470bbd7626868fe0fd.png

b23a5a53ebf1b58b20494a44fee35b57.png

ee045854620e10b3eb9fe88a64fd55ad.png

5035f0a4078e92f3794e6067d6e447d5.png

cf3995d767eb8a3b53a29f5a66bcfe38.png

42b8c6c3bf186f5d76b64d5909e993c4.png

重新分级顺序

● 索引交换

● 索引重新排序

eb7f01268af928e13bbde423e82f80f3.png

8bbf87fd409850c85721bad9cef01d66.png

根据级别汇总统计

● 指定索引级别和轴

fa7f95ce9793cfa217899cff63bb1d39.png

4d1621a050ac4bf1fee41cba953ec0aa.png

层次化索引 使用DataFrame的列

● 将指定列变为索引

● 移除或保留对象

● reset_index恢复

c3e090825d0353c872844887ecff4875.png

4ccb1612bd20d538e34335f0a229f063.png

整数索引

● 歧义的产生

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

ae1f3d2682fef67cd6ce20e14a79a66f.png

7cfbf0bad0586b13485ef7ac09e12dce.png

fda3eda049f101753a1cb3c6ce67aee9.png

90a5f40a19c3b43d1fb0836c18a9646e.png

面板(Pannel)数据

通过三维ndarray创建pannel对象

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

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

● 通过stack展现面板数据

443ddbac8508358258c2f400d4fc28e5.png

相关文章推荐

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

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

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

其他

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值