pandas入门06---数据清洗02

今天,咱们接着上次的数据转换操做讲解python

01 数据转换

01-01 替代值

一般咱们使用replace来替换缺失值。 #!/usr/bin/python # -- coding: UTF-8 --dom

import pandas as pd
import numpy as np

data = pd.Series([1., -999., 2., -999., -1000, 3.])
print(data)
print(data.replace(-999,np.nan))

结果以下:函数

若是你想要一次替代多个值,能够传入一个列表或替代值。google

print(data.replace([-999, -1000],np.nan))

也能够对应替换:code

print(data.replace([-999, -1000],[np.nan,0]))
# 参数也能够经过字典传递
print(data.replace({-999:np.nan,-1000:0}))

01-02 离散化和分箱

连续值常常须要离散化,或分离成“箱子”进行分析。blog

举例:对以下年龄进行分箱。排序

ages = [19, 20, 22, 25, 27, 21, 23, 27, 37, 31, 61, 45, 41, 32]
bins = [18, 25, 35, 60, 100]
cats = pd.cut(ages, bins)
print(cats)

能够经过labels选项传递一个列表来自定义箱名。ip

precision=2的选项将十进制精度限制在两位。ci

使用qcut能够得到等长的箱。字符串

01-03 检测和过滤异常值

np.sign(data)根据数据中的值的正负生成1和-1的数值。

下列表达式限制了-33的值:

data[np.abs(data) > 3 ] = np.sign(data) * 3

01-04 置换和随机抽样

使用numpy.random.permutation对DataFrame中的Series或行进行置换(随机重排序)。

sample方法能够帮助你选出一个不含有替代值的随机子集。

要生成一个带有替代值的样本,将replace=True传入sample方法。

01-05 计算指标/虚拟变量

若是DataFrame中的一列有k个不一样的值,则能够衍生一个k列的值为1和0的矩阵或DataFrame。get_dummies函数用于实现该功能。

02 字符串操做

split能够用来分割字符串。

strip用来清除空格换行等。

字符串"::"的join方法可传入一个列表或者元组

in用来检测子字符串。

find和index也能够检测子字符串。

区别在于:

index在字符串没找到时会抛出异常,而find会返回-1。

count返回的是某个特定字符串在字符串中出现的次数。

replace经常使用于一种模式替代另外一种模式。

ljust,rjust用于左对齐,右对齐。

data.str.contains('google')能够用来检测字符串是否含有google。

相关文章
相关标签/搜索