【导语】pandas作为数据分析的利器,我们可以灵活方便地对数据进行各种加工,今天给大家介绍5个实用pandas小技巧,能让我们工作效率达到事半功倍的效果。
一、pandas中的object类型陷阱
像我之前在使用pandas处理数据时,误以为object这种数据类型是字符串,事实上object在pandas中是代表不确定的数据类型,即类型为object的Series中可以混杂着多种数据类型,程序会统一成object。如下:

查看数据类型分布:

这种情况下,如果我们贸然当作字符串列来处理,对应的无法处理的元素只会变成缺失值而不报错,给我们的分析结果带来隐患。

这种时候就一定要先转成对应的类型,再执行相应的方法。

二、快速判断每一列是否有缺失值
在pandas中我们除了用info方法来查看缺失值,还可以用hanans属性来检查是否包含缺失值,结合apply(),我们就可以快速查看整个数据框中哪些列含有缺失值。如下:

三、使用rank()计算排名
在pandas中我们可以利用rank()方法计算某一列数据对应的排名信息,但在rank()中有参数method来控制具体的结果计算策略,如下:
-
「dense」
在dense策略下,相当于对序列去重后进行排名,再将每个元素的排名赋给相同的每个元素,这种方式也是比较贴合实际需求
-
「first」
在first策略下,当多个元素相同时,会根据这些相同元素在实际Series中的顺序分配排名
四、Series与DataFrame的互转
很多时候我们计算过程中产生的结果是Series格式的,而接下来的很多操作尤其是使用「链式」语法时,需要衔接着传入DataFrame格式的变量,这种时候我们就可以使用到pandas中Series向DataFrame转换的方法,如下:

顺便介绍一下单列数据组成的数据框转为Series的方法

五、对DataFrame的数据进行随机抽样
有时候我们需要对数据框整体的行顺序进行打乱,譬如在训练机器学习模型时,打乱原始数据顺序后取前若干行作为训练集后若干行作为测试集,这在pandas中可以利用sample()方法快捷实现,随机抽取三条数据。如下:

希望本文的内容对大家的学习或者工作能带来一定的帮助,每天进步一点点,加油♥。
网友评论