![f635e472f270b64115e001514faa6505.png](https://i-blog.csdnimg.cn/blog_migrate/53ba93cefe79263143b46afd8395f5c6.jpeg)
作者:Paul
![564bc679b4288b43fd2a8677930959d9.png](https://i-blog.csdnimg.cn/blog_migrate/5475be42da1a02d53ecb17d608c07ed4.jpeg)
编者按:
pandas提供了很多常用的数学和统计方法,本文中将用十分详细的例子来具体进行介绍;另外在许多数据分析工作中,缺失数据是经常发生的,将会具体介绍如何处理缺失数据。本文十分详细并实在低介绍了pandas处理数据的基本方法,十分建议各位对pandas学习感兴趣的同学下载代码亲自运行进行实际操作。
pandas 索引对象
pandas的索引对象负责管理轴标签和其他元数据(比如轴名称等)。构建Series或DataFrame时,所用到的任何数组或其他序列的标签都会被转换成一个Index。
Index对象是不可修改的(immutable),因此用户不能对其进行修改。不可修改性非常重要,因为这样才能使Index对象在多个数据结构之间安全共享。
pandas中主要的index对象
![564e12c47b326314bc4e9c3a2d60cfe9.png](https://i-blog.csdnimg.cn/blog_migrate/4e3bde415f9dd982b78891cebe0c1c09.jpeg)
Index的方法和属性
![3890d0789059d10a014611a93046d455.png](https://i-blog.csdnimg.cn/blog_migrate/ebcc0a0fa07fea0f865e95fea6759831.jpeg)
![375c331f1178b4fdb99c52d1bcbc291b.png](https://i-blog.csdnimg.cn/blog_migrate/dc2e825e7d782f18a468e43aa7b59b0b.jpeg)
实例如下
![dc18d65d3e5e27dfabb9d3560d89101f.png](https://i-blog.csdnimg.cn/blog_migrate/dc2c345a2664ec866cc59e7234fce802.jpeg)
![d62c34d84a74f8702b05d38e7a8621c9.png](https://i-blog.csdnimg.cn/blog_migrate/53ff8d0472320a54b8011167730a4530.jpeg)
![117d3265cafdb3ead0405db3361da5aa.png](https://i-blog.csdnimg.cn/blog_migrate/907b90bfa44dea25f9e6704864309130.jpeg)
![1fa189bc88aee1d3041e8f24bc5e1cb1.png](https://i-blog.csdnimg.cn/blog_migrate/1e1f1ac6592a736dc2cffc9b4fc24ed4.jpeg)
Pandas 重新索引
● 创建一个适应新索引的新对象,该Series的reindex将会根据新索引进行重排。如果某个索引值当前不存在,就引入缺失值。
● 对于时间序列这样的有序数据,重新索引时可能需要做一些插值处理。method选项即可达到此目的。
reindex函数的参数
![b08f26e7f2b3db73fa2bf573b7fb6084.png](https://i-blog.csdnimg.cn/blog_migrate/30c1647de795b51eba5ca3ac07389a13.jpeg)
![39e332362619b2982a21e24c4ca6ce3e.png](https://i-blog.csdnimg.cn/blog_migrate/fc051604faa7fea1eccaa2bdf65402e5.jpeg)
![56607c98f24fa51e629d78891ab52eda.png](https://i-blog.csdnimg.cn/blog_migrate/e6f196c77258ba2d26df5bb1237e840a.jpeg)
![bf02a0e61a619e41deb650af5ea71aab.png](https://i-blog.csdnimg.cn/blog_migrate/008e56fd3ba2ca5fbf5544f8aa10d178.jpeg)
![65820984bd9d56efc2459f5088aa2530.png](https://i-blog.csdnimg.cn/blog_migrate/7c465dacfdab9a60a958d633a4626bb9.jpeg)
![0b959a3a57393215c684e9be24a12253.png](https://i-blog.csdnimg.cn/blog_migrate/616203bfd1406cc0ce8fe2838fd4a089.jpeg)
![fc046660b1cf915c430563b92bb6c56f.png](https://i-blog.csdnimg.cn/blog_migrate/b48ad2f40f2de4ba11d0007b18f5c342.jpeg)
![69730890666880683d30b70dc9fef8f2.png](https://i-blog.csdnimg.cn/blog_migrate/a384be172d9342c0ad0291ad2649bcb4.jpeg)
![b6243ff4b854c8798dde82853d16e370.png](https://i-blog.csdnimg.cn/blog_migrate/40bd36aba438d4806481e3a4961056e3.jpeg)
丢弃指定轴上的项
丢弃某条轴上的一个或多个项很简单,只要有一个索引数组或列表即可。由于需要执行一些数据整理和集合逻辑,所以drop方法返回的是一个在指定轴上删除了指定值的新对象
![e482dee8f7d00299c00fa760a5e250b7.png](https://i-blog.csdnimg.cn/blog_migrate/b6431ee7ca5713457600dc9d7e316982.jpeg)
![10938bad79241fa5ecd6bb768c9b4259.png](https://i-blog.csdnimg.cn/blog_migrate/191f913e780b8885fd0fe8b9178d8b08.jpeg)
![fb0b2468fbb2746e6b22b16759574a07.png](https://i-blog.csdnimg.cn/blog_migrate/2e6b464a48ec5034fd1f0eceedc298b1.jpeg)
![b697477f9f4d1026b0b4dc83fd8e2ace.png](https://i-blog.csdnimg.cn/blog_migrate/cca33faef25801d802e4bb2935cc03c8.jpeg)
![b697477f9f4d1026b0b4dc83fd8e2ace.png](https://i-blog.csdnimg.cn/blog_migrate/cca33faef25801d802e4bb2935cc03c8.jpeg)
Pandas 索引、选取和过滤
● Series索引(obj[...])的工作方式类似于NumPy数组的索引,只不过Series的索引值不只是整数。
● 利用标签的切片运算与普通的Python切片运算不同,其末端是包含的(inclusive)。
● 对DataFrame进行索引其实就是获取一个或多个列
● 为了在DataFrame的行上进行标签索引,引入了专门的索引字段ix。
DataFrame的索引选项
![6943493a03218e491aa88c7505191813.png](https://i-blog.csdnimg.cn/blog_migrate/ad9f4cb59d23b8786c13663289989334.jpeg)
![2a0474d98fe6499e10f6b05a0f6e60bc.png](https://i-blog.csdnimg.cn/blog_migrate/0be0ccecfd177dd99355f1378e72565e.jpeg)
![6ab7c63c6b25bf9c5a173a4f7c3fc59c.png](https://i-blog.csdnimg.cn/blog_migrate/5f55eddbab938f2005cba9e523eab32e.jpeg)
![58afdc2100751839aecba446b39d7545.png](https://i-blog.csdnimg.cn/blog_migrate/996123a3224b11fc7f6c1ff0c1104814.jpeg)
![661ea16380269f2df58ff7c1906dd474.png](https://i-blog.csdnimg.cn/blog_migrate/f7883d07ba1d41ef8bb671b45f4ed714.jpeg)
![181cbf2989d4364f4decec8013a66271.png](https://i-blog.csdnimg.cn/blog_migrate/30d7548b1cff2f97ca12ce18489a2840.jpeg)
![c0faa1c17aa57a353d391adc8e861c93.png](https://i-blog.csdnimg.cn/blog_migrate/3140a6b0becc241ed3ce0a2887316c08.jpeg)
![92ab8afadc638d537708f2cd10913fa3.png](https://i-blog.csdnimg.cn/blog_migrate/6a8243441dfcca1377c200b4f4892c2a.jpeg)
![1a24e35ff227396ecd2c391033432fd2.png](https://i-blog.csdnimg.cn/blog_migrate/746a7fd5381427d5bddb11c9065ac761.jpeg)
Pandas 算术运算和数据对齐
● 对不同的索引对象进行算术运算
● 自动数据对齐在不重叠的索引处引入了NA值,缺失值会在算术运算过程中传播。
● 对于DataFrame,对齐操作会同时发生在行和列上。
● fill_value参数
● DataFrame和Series之间的运算
![674018ec8ec19c9de962e3b5a1d6a981.png](https://i-blog.csdnimg.cn/blog_migrate/0c97456daeb4b63a245d341b59c1b0fb.jpeg)
![fb18403fd4813110bcf23634599150e7.png](https://i-blog.csdnimg.cn/blog_migrate/de111e8bb3d9c50686ef7f193e117020.jpeg)
![bf49d2191ccd503f9be4b2df950a4a55.png](https://i-blog.csdnimg.cn/blog_migrate/c8e9165d86f94f6eb4ee8fe117f483a7.jpeg)
![02d90e4a6c7a6bdc7845a3e61f1a21ee.png](https://i-blog.csdnimg.cn/blog_migrate/a90c7a3374fbd3cc934ad58ca75b6b98.jpeg)
![60ebd197bde537cd5f1098d403f7480b.png](https://i-blog.csdnimg.cn/blog_migrate/6dd5fce9dd07e246eb221eba394f1bff.jpeg)
![374680927a3d8e87ecd08d0bcc83f2d8.png](https://i-blog.csdnimg.cn/blog_migrate/3fe912ae1099a7b5e7cd395e89b55d96.jpeg)
![5027d275de435ee1f9434e9979c6be44.png](https://i-blog.csdnimg.cn/blog_migrate/584a01f66dcff586bd15301e7600c7e4.jpeg)
![546fed58c2be5e72393c563dc7263b7a.png](https://i-blog.csdnimg.cn/blog_migrate/5d054a93f6c084b7443348235d9c4780.jpeg)
Pandas 函数应用和映射
● numpy的ufuncs(元素级数组方法)
● DataFrame的apply方法
● 对象的applymap方法(因为Series有一个应用于元素级的map方法)
![0bda38fe4bac9fc669126cf60baea9a0.png](https://i-blog.csdnimg.cn/blog_migrate/dbeda83fe21ee4b96e580a0f760e24f5.jpeg)
![e363bea1cb774cdefddf3d20838d8c5c.png](https://i-blog.csdnimg.cn/blog_migrate/6b1c02dfb3ba0a78bb70bbe2d69680be.jpeg)
![867b093aaaa7ec47a9e69bcb1b6d3be0.png](https://i-blog.csdnimg.cn/blog_migrate/b7661df38b166977878a3314151e2a65.jpeg)
![4eaa0e3957972b0c43960b75b48a8645.png](https://i-blog.csdnimg.cn/blog_migrate/df051813ad96d7e40e82de46a4bc9205.jpeg)
![82d0c6bee02620df6b3404352e1b1c6b.png](https://i-blog.csdnimg.cn/blog_migrate/b862c645097fb8efc6531cc1732882b6.jpeg)
![b46bfbebb326cfd6d7f498c6653e0d95.png](https://i-blog.csdnimg.cn/blog_migrate/186135e49f11a6874e54de436b390573.jpeg)
Pandas 排序和排名
● 对行或列索引进行排序
● 对于DataFrame,根据任意一个轴上的索引进行排序
● 可以指定升序降序
● 按值排序
● 对于DataFrame,可以指定按值排序的列
● rank函数
![35f01dca81e41a931e4fd3cd354486b0.png](https://i-blog.csdnimg.cn/blog_migrate/93cec173b122db378ea2479305dc8081.jpeg)
![f354dccde7b3783db65aef817832a96b.png](https://i-blog.csdnimg.cn/blog_migrate/7e40d5d15a5ba8178d22dae4e2b09c15.jpeg)
![5e7f6303b57615a03fefa53720aea3d6.png](https://i-blog.csdnimg.cn/blog_migrate/bd7826fc94afa43e25d2d138bc29a17c.jpeg)
![d22b1e91fe2acd84a8a09f8cfdfdbd2c.png](https://i-blog.csdnimg.cn/blog_migrate/8f84fb047f00450ece6986f4c68324dc.jpeg)
![1cc45b460da67baec5339cc403e170c5.png](https://i-blog.csdnimg.cn/blog_migrate/c907cb60a668d4ea2e7d9b0e10142a16.jpeg)
![89bf4f8c205a6d05fa62c6d6f69c3a59.png](https://i-blog.csdnimg.cn/blog_migrate/bfa08739898d9dab7e47fa30c246756a.jpeg)
![df7bc2d3c7d80035176fbcd7f5968ca5.png](https://i-blog.csdnimg.cn/blog_migrate/a4f1455facd42ac282ed70cfb5d5f33e.jpeg)
![00c62c88d36f0fefe35a5db61ce74a0c.png](https://i-blog.csdnimg.cn/blog_migrate/7864a2fc06ef085b67566a8ffdb20678.jpeg)
Pandas 带有重复值的索引
● 对于重复索引,返回Series,对应单个值的索引则返回标量。
![47162a899ccd8ea68ac428bc0bbbe92f.png](https://i-blog.csdnimg.cn/blog_migrate/3e3e00bafa10051f71e6c8842d2b4cd2.jpeg)
![76dfb9d85da6bcc186e607c9f33ef6e7.png](https://i-blog.csdnimg.cn/blog_migrate/48add9acb406b8bb80cb16d2d157a2dd.jpeg)
Pandas 汇总和计算描述统计
● 常用方法选项
![888f2cabd1ae4fe6fe4b97b6d3d0e30d.png](https://i-blog.csdnimg.cn/blog_migrate/42c15192f5798395d06ad6b4db6b73f6.jpeg)
Pandas 常用描述和汇总统计函数
![af69b5e41d3b4da8c372624a2a3a91aa.png](https://i-blog.csdnimg.cn/blog_migrate/aeade8c519d3bfa49fde4052c77bea00.jpeg)
![a394ddb07156c5c950febe7a22596f8f.png](https://i-blog.csdnimg.cn/blog_migrate/276c53f4336602fd7435eaaf5b872385.jpeg)
● 数值型和非数值型的区别
● NA值被自动排查,除非通过skipna选项
![e9e3fca6e4485245fa39090dceb1e3ad.png](https://i-blog.csdnimg.cn/blog_migrate/ee0c112019a697a08fc01cb597f6ef73.jpeg)
![05f00f665c59685749f8dd9bd35352c3.png](https://i-blog.csdnimg.cn/blog_migrate/2dbd8ca75869e345b587fd8a92bb7c29.jpeg)
![e9c7030e74a4bdff86ab3e085a13eabc.png](https://i-blog.csdnimg.cn/blog_migrate/1f472f70d339142fcf0db18377e6de7e.jpeg)
![99087a85cf1ea113156547f3721f86f2.png](https://i-blog.csdnimg.cn/blog_migrate/2709d52ea707707374f648787088779f.jpeg)
![0d91bebfda3eadae3d80262579fcecd4.png](https://i-blog.csdnimg.cn/blog_migrate/f74bfcb439a4d69c91a883af1975391e.jpeg)
![3f129e43fbda6e22f26b7aef69fa8d8d.png](https://i-blog.csdnimg.cn/blog_migrate/d6498da20f05786d70b50526885327ed.jpeg)
Pandas 汇总和计算描述统计 相关系数与协方差
● 相关系数:相关系数是用以反映变量之间相关关系密切程度的统计指标。
● 协方差:从直观上来看,协方差表示的是两个变量总体误差的期望。如果两个变量的变化趋势一致,也就是说如果其中一个大于自身的期望值时另外一个也大于自身的期望值,那么两个变量之间的协方差就是正值;如果两个变量的变化趋势相反,即其中一个变量大于自身的期望值时另外一个却小于自身的期望值,那么两个变量之间的协方差就是负值。
Pandas 汇总和计算描述统计 唯一值以及成员资格
常用方法
![30560f2ab6d7c0597795f3cd806c8fe7.png](https://i-blog.csdnimg.cn/blog_migrate/d129779d0227ae41b51573aa75235124.jpeg)
![278996b615463e68972bab955f529f00.png](https://i-blog.csdnimg.cn/blog_migrate/09aa6047f7f01dc4031740b3d4e22037.jpeg)
![f371726920ce1a963a0ae69bf8141821.png](https://i-blog.csdnimg.cn/blog_migrate/66f64151a02714c0ff57af3a69b98142.jpeg)
![266c59dc3ace67a643c3362c29630ad6.png](https://i-blog.csdnimg.cn/blog_migrate/a80ddef630e0412d68bd8cba71fbc42c.jpeg)
![db7430a379264ee9fec1aea547fb80ab.png](https://i-blog.csdnimg.cn/blog_migrate/39af35874c2ab2bcc339411e3a018e23.jpeg)
Pandas 处理缺失数据
● NA处理方法
![19ca8cc3602056de5b6233a8dcdd83c8.png](https://i-blog.csdnimg.cn/blog_migrate/f5ab5767a7adb2436cb3dcbc25ef4b7e.jpeg)
● NaN(Not a Number)表示浮点数和非浮点数组中的缺失数据
● None也被当作NA处理
![11e768d54a036d9aa09ee067a4b3395f.png](https://i-blog.csdnimg.cn/blog_migrate/ade520c3a179317f6c5f334c933b2f35.jpeg)
![a9a2160a39b1bc3f719adf7dda8b17d4.png](https://i-blog.csdnimg.cn/blog_migrate/9ca4fb978b83a67a4f9661780713eb5f.jpeg)
Pandas 滤除缺失数据
● dropna
● 布尔索引
● DatFrame默认丢弃任何含有缺失值的行
● how参数控制行为,axis参数选择轴,thresh参数控制留下的数量
![11e768d54a036d9aa09ee067a4b3395f.png](https://i-blog.csdnimg.cn/blog_migrate/ade520c3a179317f6c5f334c933b2f35.jpeg)
![7bdc3c967387744dad605bcaba799281.png](https://i-blog.csdnimg.cn/blog_migrate/a098d38436679b711734834bc6cd201c.jpeg)
![f5a7d77ebc0bf02bafc679f3a9cd7d44.png](https://i-blog.csdnimg.cn/blog_migrate/efa22f20a125119ee1ae78f6da58ef6a.jpeg)
![43ad7d89488b0be4f95ddd2da63cb7a2.png](https://i-blog.csdnimg.cn/blog_migrate/a99a573594362747c5888768a6727369.jpeg)
Pandas 填充缺失数据
● fillna
● inplace参数控制返回新对象还是就地修改
![9615551ec6e0016e7c885ebe80aac101.png](https://i-blog.csdnimg.cn/blog_migrate/0cb8b8df269609f649f68da0f6a2b9a7.jpeg)
![33fcd9f4102a2034bd6623e217beea73.png](https://i-blog.csdnimg.cn/blog_migrate/ca311446b2d27dedba82822bff7a25de.jpeg)
![417ced6daf2d0efae08d7bcdb35e6c9e.png](https://i-blog.csdnimg.cn/blog_migrate/bfb961640c65d1c4972cbf5472710c87.jpeg)
![34fa65ca3316870f77fb66e73eca7c39.png](https://i-blog.csdnimg.cn/blog_migrate/2ed55ac01918e3d3f0817164fb8454f5.jpeg)
![60bf341c8d0dc8cd43266063fb27ae7d.png](https://i-blog.csdnimg.cn/blog_migrate/0e355332b0a706651bc03d1b81bdd9fe.jpeg)
![ea2efba34d47a6addbc256c04e14a889.png](https://i-blog.csdnimg.cn/blog_migrate/f9beafca74718d942292ba21772c2557.jpeg)
![2ca5a57f61fd0989b01ed0e3ba6e41ad.png](https://i-blog.csdnimg.cn/blog_migrate/e1119aeb8f320422ec7697dd158bf8a0.jpeg)
![af2cf5e4834e5f2458f2c84ba4288620.png](https://i-blog.csdnimg.cn/blog_migrate/e0316f8fe21ea4fa13a39a0230bdd224.jpeg)
Pandas 层次化索引
● 使你能在一个轴上拥有多个(两个以上)索引级别。抽象的说,它使你能以低纬度形式处理高维度数据。
● 通过stack与unstack变换DataFrame
![7f61ff96a0984b470bbd7626868fe0fd.png](https://i-blog.csdnimg.cn/blog_migrate/172bd64c01f6ce005d6729f9aa408483.jpeg)
![b23a5a53ebf1b58b20494a44fee35b57.png](https://i-blog.csdnimg.cn/blog_migrate/81acb839cc139a7763c235f8eb1c8ece.jpeg)
![ee045854620e10b3eb9fe88a64fd55ad.png](https://i-blog.csdnimg.cn/blog_migrate/cc5e290e8c64e8ad152c76bd23299f74.jpeg)
![5035f0a4078e92f3794e6067d6e447d5.png](https://i-blog.csdnimg.cn/blog_migrate/14038ec5d7cd648395159fe7fa6e0e2a.jpeg)
![cf3995d767eb8a3b53a29f5a66bcfe38.png](https://i-blog.csdnimg.cn/blog_migrate/79d5618a0de4e7979c71efeff76b3280.jpeg)
![42b8c6c3bf186f5d76b64d5909e993c4.png](https://i-blog.csdnimg.cn/blog_migrate/f3eb60cccae18e8509a066d82b61587e.jpeg)
重新分级顺序
● 索引交换
● 索引重新排序
![eb7f01268af928e13bbde423e82f80f3.png](https://i-blog.csdnimg.cn/blog_migrate/8650de3ce64e76d97fb1c4221addd3e1.jpeg)
![8bbf87fd409850c85721bad9cef01d66.png](https://i-blog.csdnimg.cn/blog_migrate/c1d5f14f4caef18950fc652c4104ba56.jpeg)
根据级别汇总统计
● 指定索引级别和轴
![fa7f95ce9793cfa217899cff63bb1d39.png](https://i-blog.csdnimg.cn/blog_migrate/963f36061770e0ee5e7e12185b92e17a.jpeg)
![4d1621a050ac4bf1fee41cba953ec0aa.png](https://i-blog.csdnimg.cn/blog_migrate/634c9ac68713ed60b0a84738d2593436.jpeg)
层次化索引 使用DataFrame的列
● 将指定列变为索引
● 移除或保留对象
● reset_index恢复
![c3e090825d0353c872844887ecff4875.png](https://i-blog.csdnimg.cn/blog_migrate/4bfc702f38958f416191b455769f2cf4.jpeg)
![4ccb1612bd20d538e34335f0a229f063.png](https://i-blog.csdnimg.cn/blog_migrate/8d1e481ef7e1809e60dcbafa5a89c0da.jpeg)
整数索引
● 歧义的产生
● 可靠的,不考虑索引类型的,基于位置的索引。
![ae1f3d2682fef67cd6ce20e14a79a66f.png](https://i-blog.csdnimg.cn/blog_migrate/15897e8a46cbbe1d677cbefbdbcd634c.jpeg)
![7cfbf0bad0586b13485ef7ac09e12dce.png](https://i-blog.csdnimg.cn/blog_migrate/d4afa1d1601c59b7d42507ef394111e2.jpeg)
![fda3eda049f101753a1cb3c6ce67aee9.png](https://i-blog.csdnimg.cn/blog_migrate/486c45e8ffba90beb96c702a47297eaf.jpeg)
![90a5f40a19c3b43d1fb0836c18a9646e.png](https://i-blog.csdnimg.cn/blog_migrate/6c99c657233c8bb360b01da9041e576f.jpeg)
面板(Pannel)数据
通过三维ndarray创建pannel对象
● 通过ix[...]选取需要的数据
● 访问顺序:item -> major -> minor
● 通过stack展现面板数据
![443ddbac8508358258c2f400d4fc28e5.png](https://i-blog.csdnimg.cn/blog_migrate/2e6a9504a0f766b87c8cb2617586c41e.jpeg)
相关文章推荐
要把一件事说的有滋有味,得要慢慢地说,不能着急,这样才能体察人情
读完这篇文章不过瘾?请继续关注我们上一期的文章,来看看我们是如何用python分析周杰伦专辑所有的歌词,并用热词重写《说好不哭》。
点击蓝字标题,即可阅读 数据科学 | 分析周杰伦75775字歌词后,我们用他最爱的词重写了《说好不哭》
其他
数据科学 | 避坑!Python特征重要性分析中存在的问题
数据科学 | 『运筹OR帷幄』数据分析、可视化、爬虫系列教程
![443ddbac8508358258c2f400d4fc28e5.png](https://i-blog.csdnimg.cn/blog_migrate/2e6a9504a0f766b87c8cb2617586c41e.jpeg)