从零开始学Python连载【六】--pandas(数据框部分02)
接着上一期的pandas模块介绍与应用,今天我们来聊聊如何借助于pandas模块进行数据的预处理,内容包括数据集变量与观测的筛选、变量的重命名、数据类型的变换、排序、重复观测的删除、和数据集的抽样。
一、数据筛选
以iris数据集为例,想从数据集中取出某列(序列对象)或某几列该如何操作?

在pandas取出一列有两种方法,一种是比较普遍适用的名称索引法,另一种则是点取法。看看下面的例子就可以理解了:

如果使用点取法取出数据集中的某列,需要注意的是列的名称必须是一个整体,例如stu age或stu.age等格式的变量名就不能使用点取法。
对应到R语言中,也有两种取列的方法,分别是索引法和$取法:

需要注意的是,如果你使用名称索引法,列名称一定要写在逗号,后面,因为逗号前面的内容表示要取的行,逗号后面的内容表示要取的列。
如果你需要取出的不仅仅是一列数据,而是多列,那不管是Python还是R语言只能使用名称索引或位置索引了。接下来再来看看如何按照某些条件取出想要的观测行:
一个变量的观测筛选
>need-to-insert-img

需要注意的是:多个变量的筛选,可以是或(|)关系、可以是且(&)关系还可以是非(~)关系,一定要用圆括号把条件括起来。
两个变量的观测筛选并筛选部分变量

在Python中通过索引的方式获取数据的部分子集,虽然有loc和iloc可以实现取子集,但我更推荐loc函数的应用,因为个人觉得iloc应用的场景比较少,它是基于行或列的位置进行数据筛选的。例如

在R语言中,获取数据集的子集就更容易了,这里强烈推荐使用subset函数。按照上面Python的例子用R语言实现一遍:
一个变量的观测筛选

二、变量的删除
有时,在一张表里你可能需要删除与建模或分析无关紧要的变量,如用户id、姓名、邮编号码等。在Python中,你可以借助于drop函数非常轻松的删除指定的变量。

三、变量重命名
如iris数据集,由于第一个变量的名称为“Sepal.Length”,中间有句点号,故Python不可以使用点取法获得该数据集的第一个变量,而只能通过索引获取。如果把该变量的名称改为“Sepal_Length”,就可以使用点取法了,该如何更换变量名呢?rename函数可以帮助我们解决问题:

四、数据类型转化
使用Python进行建模的话,需要所有的输入变量均为数值型变量,然而手中的实际数据集并非全是数值型变量,该如何把字符型数值变量转化为数值变量呢?
字符型数值转数值

五、数据集的排序
如果你需要对你的数据集进行排序,Python中pandas模块也提供了非常好用的sort_values函数。我们举例说明:

今天我们的内容就介绍到这边,欢迎大家拍砖。下期我们来聊聊pandas模块的数据框DataFrame第三部分。主要涉及缺失值处理、数据集的合并和连接、分组汇总、哑变量生成、连续数值的区间化等操作。
有需要更多资料可以私信我“学习”来领取哦
散会 886
网友评论