本文转自:大数据文摘 翻译:黄念 校对:王方思 “为什么要学Python”这个问题,是很多从来没有学过,或者没有怎么了解过Python的小白最常见的问题。 其实Python语言非常简单,同时又很强大,最新的数据是位列2016语言排行榜第三位,而且美国,澳大利亚,加拿大,14岁以上的青少年开始官方推荐学习。 Python虽然是25岁的大叔级编程语言,但是近年来Python反而变得越来越流行,在TIOBE编程语言指数排行榜中,Python的排名长期占据领先位置。
国外非常有名的有Google, facebook, Yahoo, YueTube, 还有美国宇航局NASA, 像著名的开源云计算平台openstack也是用python写的,还有国内的豆瓣也是用python写的。 今天主页君就带大家一起了解python入门的数据处理12种有用的Pandas技巧 1 布尔索引 如果你想根据另一列的条件来筛选某一列的值,你会怎么做?例如,我们想获得一份完整的没有毕业并获得贷款的女性名单。这里可以使用布尔索引实现。你可以使用以下代码: 2 Apply 函数 Apply是一个常用函数,用于处理数据和创建新变量。在利用某些函数传递一个数据帧的每一行或列之后,Apply函数返回相应的值。该函数可以是系统自带的,也可以是用户定义的。举个例子,它可以用来找到任一行或者列的缺失值。 由此我们得到了需要的结果。 注:第二个输出中使用了head()函数,因为结果中包含很多行。 3 填补缺失值 ‘fillna()’可以一次性解决:以整列的平均数或众数或中位数来替换缺失值。让我们基于其各自的众数填补出“性别”、“婚姻”和“自由职业”列的缺失值。
#首先导入函数来判断众数 结果返回众数和其出现频次。请注意,众数可以是一个数组,因为高频的值可能有多个。我们通常默认使用第一个: 现在,我们可以填补缺失值并用# 2中提到的方法来检查。 #填补缺失值并再次检查缺失值以确认 4 透视表 Pandas可以用来创建MS Excel风格的透视表。例如,在本例中一个关键列是“贷款数额”有缺失值。我们可以根据“性别”,“婚姻状况”和“自由职业”分组后的平均金额来替换。 “贷款数额”的各组均值可以以如下方式确定: 5 多索引 如果你注意到#3的输出,它有一个奇怪的特性。每一个索引都是由3个值组合构成的。这就是所谓的多索引。它有助于快速执行运算。 从# 3的例子继续开始,我们有每个组的均值,但还没有被填补。 这可以使用到目前为止学习到的各种技巧来解决。 #只在有缺失贷款值的行中进行迭代并再次检查确认 注意:
6 交叉表 此函数用于获取数据的一个初始“感觉”(视图)。在这里,我们可以验证一些基本假设。例如,在本例中,“信用记录”被认为显著影响贷款状况。这可以使用交叉表验证,如下图所示: 这些是绝对值。但是,要获得快速的见解,用百分比更直观。我们可以使用apply 函数来实现: 现在,很明显,有信用记录的人得到一笔贷款的可能性更高:与没有信用记录的人只有8%得到贷款相比,80%的有信用记录的人获得了一笔贷款。 然而不仅如此。其中包含了更有趣的信息。由于我已经知道有一次信用记录是非常重要的,如果我预测拥有信用记录的人贷款状态是Y(贷款成功),而没有的人为N(贷款失败)。令人惊讶的是,我们在614个例子中会有82 378=460次的正确。这个比例高达75%! 如果你仍纳闷为何我们还需要统计模型,我不会怪你。但是相信我,即使在目前这个精准度上再提高哪怕0.001%的精度仍会是一项充满挑战性的任务。你会接受这个挑战吗? 注:这个75%是基于训练集的。测试集会略有不同,但接近。另外,我希望这能提供一些直觉,即到底为什么哪怕0.05%的精度提升,可造成Kaggle排行榜(数据分析竞赛网站译者注)上的名次上升500位。 7 合并数据帧 当我们需要对不同来源的信息进行合并时,合并数据帧变得很重要。假设对于不同物业类型,有不同的房屋均价(INR/平方米)。让我们定义这样一个数据帧: 现在,我们可以将原始数据帧和这些信息合并: 透视表验证了成功的合并操作。请注意,“value”在这里是无关紧要的,因为在这里我们只简单计数。 8 数据帧排序
Pandas允许在多列之上轻松排序。可以这样做: 注:Pandas的“排序”功能现在已不再推荐。我们用“sort_values”代替。 9 绘图(箱线图和树状图) 很多人可能没意识到,箱线图和柱状图可以直接在Pandas中绘制,不必另外调用matplotlib。这只需要一行命令。例如,如果我们想通过贷款状况来比较申请人收入的分布,我们可以这样做: 可见收入本身并不是一个决定性因素, 因为获得/未获得贷款的人没有明显的收入差异。 |
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|