加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

数据处理

发布时间:2020-12-14 04:29:11 所属栏目:大数据 来源:网络整理
导读:? 缺失值处理 查看每列缺失值的数量 Sum(pd.isnull(‘df’) ) ? 可以将na_values选项传递到 pd.read_csv来清理它们。我们还可以指定某列的类型是字符串,而不是浮点。 ? na_values = [‘NO CLUE‘,‘N/A‘,‘0‘] requests = pd.read_csv(‘../data/311-serv
?
缺失值处理

查看每列缺失值的数量

Sum(pd.isnull(‘df’) )

?

可以将na_values选项传递到 pd.read_csv来清理它们。我们还可以指定某列的类型是字符串,而不是浮点。

?

na_values = [‘NO CLUE‘,‘N/A‘,‘0‘]

requests = pd.read_csv(‘../data/311-service-requests.csv‘,na_values=na_values,dtype={‘某列‘: str})

?

删除法

?

默认对行进行操作

df.dropna()会删除任意含有缺失值的行

df.drop(how=all)只删除全是缺失值的行

?

填补法

?

1)? 使用0填充

df.fillna(0)

2)? 前向填充和后向填充

df.fillna(method=ffill)

df.fillna(method=bfill)

3)常量填充,或者均值填充,中位数填充

df.fillna({‘列1’: 2,’列2’: 3})

?

插值法

?

插补法是基于蒙特卡洛模拟法,结合线性模型、广义线性模型、决策树等方法计算出来的预测值替换缺失值。

?

举例:自定义列向量拉格朗日插值函数

#s为列向量,n为被插值的位置,k为取前后的数据个数,默认为5

from scipy.interpolate import lagrange #导入拉格朗日插值函数

def ployinterp_column(s,n,k=5):

? y = s[list(range(n-k,n)) + list(range(n+1,n+1+k))] #取数

? y = y[y.notnull()] #剔除空值

? return lagrange(y.index,list(y)) ?#插值并返回插值结果

?

#逐个元素判断是否需要插值

for i in data.columns:

? for j in range(len(data)):

??? if (data[i][j]).isnull(): #如果为空即插值。

????? data[i][j] = ployinterp_column(data[i],j)

数据规范化

会作用于每一列

?

(data - data.min())/(data.max() - data.min()) #最小-最大规范化

?

(data - data.mean())/data.std() #零-均值规范化

?

替换值

ata = Series([1.,-999.,2.,-1000.,3.])

?

data.replace(-999,np.nan)

?

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

?

data.replace({-999: np.nan,-1000: 0})

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读