前言
python正迅速成为数据科学家偏爱的语言,这合情合理。它拥有作为一种编程语言广阔的生态环境以及众多优秀的科学计算库。如果你刚开始学习python,可以先了解一下python的学习路线。
python学习路线图
本文旨在提供python数据处理的12种方法。文中也分享了一些会让你的工作更加便捷的小技巧。
开始工作
首先我要导入要用的模块,并把数据集载入python环境。
1、布尔索引(boolean indexing)
如何你想用基于某些列的条件筛选另一列的值,你会怎么做?例如,我们想要一个全部无大学学历但有贷款的女性列表。这里可以使用布尔索引。代码如下:
data.loc[(data[gender]==female) & (data[education]==not graduate) & (data[loan_status]==y), [gender,education,loan_status]]
2、apply函数
apply是摆弄数据和创造新变量时常用的一个函数。apply把函数应用于数据框的特定行/列之后返回一些值。这里的函数既可以是系统自带的也可以是用户定义的。例如,此处可以用它来寻找每行每列的缺失值个数:
输出结果:
由此我们得到了想要的结果。
注意:第二个输出使用了head()函数,因为数据包含太多行。
3、替换缺失值
‘fillna()’ 可以一次解决这个问题。它被用来把缺失值替换为所在列的平均值/众数/中位数。
输出: moderesult(mode=array([‘male’], dtype=object), count=array([489]))
返回了众数及其出现次数。记住,众数可以是个数组,因为高频的值可能不只一个。我们通常默认使用第一个:
mode(data['gender']).mode[0]
'male'
现在可以填补缺失值,并用上一步的技巧来检验。
由此可见,缺失值确定被替换了。
注意这是最基本的替换方式,其他更复杂的技术,如:
缺失值建模用分组平均数(平均值/众数/中位数)填充
4、透视表
pandas可以用来创建 excel式的透视表。例如,“loanamount”这个重要的列有缺失值。
5、多重索引
你可能注意到上一步骤的输出有个奇怪的性质。每个索引都是由三个值组合而成。这叫做多重索引。它可以帮助运算快速进行。
注意:
多重索引需要在loc中用到定义分组group的元组(tuple)。这个元组会在函数中使用。
需要使用.values[0]后缀。因为默认情况下元素返回的顺序与原数据库不匹配。在这种情况下,直接指派会返回错误。
6、二维表
这个功能可被用来获取关于数据的初始“印象”(观察)。这里我们可以验证一些基本假设。
7、数据框合并
当我们有收集自不同来源的数据时,合并数据框就变得至关重要。
现在可以把它与原始数据框合并:
注意这里的 ‘values’无关紧要,因为我们只是单纯计数。
8 、给数据框排序
pandas可以轻松基于多列排序。方法如下:
注:pandas 的“sort”函数现在已经不推荐使用,我们用 “sort_values”函数代替。
9、绘图(箱型图&直方图)
许多人可能没意识到pandas可以直接绘制箱型图和直方图,不必单独调用matplotlib。只需要一行代码。
data.boxplot(column=applicantincome,by=loan_status)
data.hist(column=applicantincome,by=loan_status,bins=30)
可以看出获得/未获得贷款的人没有明显的收入差异,即收入不是决定性因素。
10、 用cut函数分箱
有时把数值聚集在一起更有意义。
11、为分类变量编码
编码前后计数不变,证明编码成功。
12、在一个数据框的各行循环迭代
通常来说手动定义变量类型是个好主意。如我们检查各列的数据类型:
#检查当前数据类型:
data.dtypes
载入这个文件之后,我们能对每行迭代,把用‘type’列把数据类型指派到‘feature’ 列对应的项目。
现在信用记录这一列的类型已经成了‘object’ ,这在pandas中代表分类变量。