很开心,这个系列来到第八篇了。
利用函数或映射进行数据转换
###替换缺失值
在这里,我是直接沿用上一篇的DataFrame对象的。
替换缺失的数据值,我们可以通过replace()函数来实现。
注意:前面的参数是被替换的数据值,后面的参数是新的数据值。
同时,这样的修改也是没有在原来的对象的内存中修改。再次查看DataFrame对象, 可以查看。
如果要替换多个数据值,可以使用列表作为参数。
不过,这里就要注意了,第一个列表的内容是所有被替换的值,所有的新的数据值是放在后面的列表中的。并且,它们的位置是一一对对应的。还有,我们可以使用字典作为参数。
注意:这里参数的位置又不一样了,你可以自己找找规律。
下面,我们利用自定义函数来替换数据值。我先新建一个DataFrame对象。
data = {
'name':['小明', '小红', '小白'],
'score':[58, 86, 93]
}
df4 = DataFrame(data)
还有,自定义函数的代码。
def f(x):
if x < 60:
return '不及格'
elif 60 <= x < 90:
return '良好'
elif x >=90:
return '优秀'
在这里,我希望你还记得我之前说过的三种函数方式。这里,我用的是map()。
查看异常值
无可避免,在我们要处理的数据中必然会存在各种各样的异常值,我们要学会如何查看。
新建一个DataFrame对象。
df5 = DataFrame(np.arange(10), columns=['X'])
df5['Y'] = 2 * df5['X']
df5.iloc[9,1] = 222
df5
最先单的方法就是 用散点图来查看异常值。
虚拟变量
pandas还有一个比较有趣的方法get_dumnies()。它可以实现数据的虚拟。
新建的DataFrame对象如下所示:
使用get_dumnies()之后如下所示。
有什么用?这样我们就可以用数据方法表示朝向啦。
可是,还有东南,西北这样的复合的朝向,又改怎么办?下面演示到底该怎么办。
使用apply()配合lambda函数来实现。