好文档 - 专业文书写作范文服务资料分享网站

[数据分析] 教你一文掌握数据预处理

天下 分享 时间: 加入收藏 我要投稿 点赞

干货 :教你一文掌握数据预处理

数据分析一定少不了数据预处理,预处理的好坏决定了后续的模型效果,今天我们就来看看预处理有哪些方法呢?

记录实战过程中在数据预处理环节用到的方法~

主要从以下几个方面介绍:

? 常用方法 ? Numpy部分 ? Pandas部分 ? Sklearn 部分 ? 处理文本数据

一、常用方法

1、生成随机数序列

randIndex = random.sample(range(trainSize, len(trainData_copy)), 5*trainSize)

2、计算某个值出现的次数

titleSet = set(titleData) for i in titleSet:

count = titleData.count(i)

用文本出现的次数替换非空的地方。词袋模型 Word Count

titleData = allData['title'] titleSet = set(list(titleData))

title_counts = titleData.value_counts() for i in titleSet: if isNaN(i): continue

count = title_counts[i]

titleData.replace(i, count, axis=0, inplace=True) title = pd.DataFrame(titleData) allData['title'] = title

3、判断值是否为NaN

def isNaN(num): return num != num

4、 Matplotlib在jupyter中显示图像

%matplotlib inline

5、处理日期

birth = trainData['birth_date'] birthDate = pd.to_datetime(birth) end = pd.datetime(2020, 3, 5) #

birthDay = end - birthDate birthDay.astype('timedelta64[D]') # timedelta64

int64

trainData['birth_date'] = birthDay.dt.days

6、计算多列数的平均值等

trainData['operate_able'] = trainData.iloc[ : , 20:53].mean(axis=1) trainData['local_able'] = trainData.iloc[ : , 53:64].mean(axis=1)

7、数据分列(对列进行one-hot)

train_test = pd.get_dummies(train_test,columns=[\])

train_test = pd.get_dummies(train_test,columns = ['SibSp','Parch','SibSp_Parch'])

8、正则提取指定内容

df['Name].str.extract()是提取函数,配合正则一起使用

train_test['Name1'] = train_test['Name'].str.extract('.+,(.+)').str.extract( '^(.+?)\\.').str.strip()

9、根据数据是否缺失进行处理

train_test.loc[train_test[\].isnull() ,\] = 1 train_test.loc[train_test[\].notnull() ,\] = 0

10、按区间分割-数据离散化

返回x所属区间的索引值,半开区间

#将年龄划分五个阶段,labels=[1,2,3,4,5])

10

以下,10-18,18-30,30-50,50

以上

train_test['Age'] = pd.cut(train_test['Age'], bins=[0,10,18,30,50,100]

二、Numpy部分

1、where索引列表

delLocal = np.array(np.where(np.array(trainData['acc_now_delinq']) == 1))

2、permutation(x) 随机生成一个排列或返回一个range

如果x是一个多维数组,则只会沿着它的第一个索引进行混洗。

import numpy as np

shuffle_index = np.random.permutation(60000)

X_train, y_train = X_train[shuffle_index], y_train[shuffle_index]

3、numpy.argmax() 返回沿轴的最大值的`索引`

返回沿轴的最大值的索引。

np.argmax(some_digit_scores)

? a : array_like; 输入数组

? axis : int, optional; 默认情况下,索引是放在平面数组中,否则沿着指定的轴。

? out : array, optional; 如果提供,结果将被插入到这个数组中。它应该是适当的形状和dtype。

4、numpy.dot(a, b, out=None) 计算两个数组的点积

>>> np.dot(3, 4)

5、numpy.random.randn() 从标准正太分布返回样本

>>> np.random.seed(42) #

>>> theta = np.random.randn(2,1) array([[ 4.21509616], [ 2.77011339]])

参数

? d0, d1, …, dn : int, optional;返回的数组维度,应该都是正值。如果没有给出,将返回一个Python float值。

6、numpy.linspace() 在指定区间返回间隔均匀的样本[start, stop]

X_new=np.linspace(-3, 3, 100).reshape(100, 1) X_new_poly = poly_features.transform(X_new) y_new = lin_reg.predict(X_new_poly) plt.plot(X, y, \)

plt.plot(X_new, y_new, \, linewidth=2, label=\) plt.xlabel(\, fontsize=18)

plt.ylabel(\, rotation=0, fontsize=18) plt.legend(loc=\, fontsize=14) plt.axis([-3, 3, 0, 10])

save_fig(\) plt.show()

? start : scalar;序列的起始值 ? stop : scalar;序列的结束值

? num : int, optional;要生成的样本数量,默认为50个。

[数据分析] 教你一文掌握数据预处理

干货:教你一文掌握数据预处理数据分析一定少不了数据预处理,预处理的好坏决定了后续的模型效果,今天我们就来看看预处理有哪些方法呢?记录实战过程中在数据预处理环节用到的方法~主要从以下几个方面介绍:?常用方法?Numpy部分?Pandas部分?Sklearn部分?处理文本数据一
推荐度:
点击下载文档文档为doc格式
09j0b2eunv9vfqx3d4pq7px008twst015cs
领取福利

微信扫码领取福利

微信扫码分享