数据异常值的过滤
在数据分析中,经常需要检测数据结构中的异常值。我们还是举个例子,先来创建一个包含三列的DataFrame对象,每一列都包含个随机数。
可以用describe()函数查看每一列的描述性统计量。
例如,你可以会将比标准差大3倍的元素视作异常值。用std()函数就可以求得DataFrame对象每一列的标准差。
j接下来,根据每一列的标准差,对DataFrame对象的所有元素进行过滤。借助any()函数,就可以对每一列应用筛选条件。
数据排序
用numpy.random.permutation()函数,调整Series对象或DataFrame对象各行的顺序(随机排序)很简单。
举个例子,创建一个元素为整数且按照升序排列的DataFrame对象。
用permutation()函数创建一个包含0~4(顺序随机)这五个整数的数组。我们将按照这个数组元素的顺序为DataFrame对象的行排序。
对DataFrame对象的所有行应用take()函数,把新的次序传给它。
如上所见,DataFrame对象各行的位置已发生改变。新索引的顺序跟new_order数组的元素顺序保持一致。
你甚至还可以只对DataFrame对象的一部分进行排序操作。它将生成一个数组,只包含特定索引范围的数据。例如我们这里的2~4。
随机取样
上面刚讲了如何通过指定排列次序,从DataFrame对象中抽取一部分数据。若DataFrame规模很大,有时可能需要从中随机取样,最快的方法莫过于使用np.random.randint()函数。
从随机取样这个例子可知,你可以多次获取相同的样本。
字符串处理
Python语言由于处理字符串和文本很方便,因而很受欢迎。大多数字符串操作用Python的内置函数就能轻松实现。字符串匹配及其他更为复杂的字符串处理,就有必要用正则表达式了。
内置的字符串处理方法
你常常需要将复合字符串划分为几个部分,分别赋给不同的变量。split()函数以参考点为分隔符,比如逗号,将文本分为几部分。
如上所见,切分后得到的第一个元素以空白字符结尾。这个问题很常见。为了解决这个问题,使用split()函数切分后,还要再用strip()函数删除空白的字符,包括换行符。
这样我们就得到了一个字符串数组。如果元素数量较少且固定不变,可使用下面这种非常有意思的赋值方式:
上面讲的是文本的切分方法,但我们通常还需要其逆操作,也就是把多个字符串拼接在一起形成一段长文本。
最直观和简单的方法就是使用运算符‘+’把这几个文本片段拼接在一起。
如果只有寥寥几个字符串,那么这种拼接方式就显得很简单。但是如果要拼接很多字符串,更为实用的方式就是使用join()函数。