最近在做数据处理相关的东西,有用到数据归一化,因此做下记录。
在数据处理时,需要对数据集中除了‘time’列和‘pose’列的剩下所有列都做归一化处理。
对于‘pose’列,我们要把 sit 这个属性变为0。
下图为部分数据:
读取文件并归一化代码如下所示:
import numpy as np
import pandas as pd
traindata = pd.read_csv('data1.csv')
print(traindata)
target='pose' # pose的值就是分类
x_columns = [x for x in traindata.columns if x not in [target]]
x_columns.append('pose') # 得到标题列表
# 数据清洗
def harmonize_data(posedata):
# 对数据进行归一化
# 首先是归一化函数
max_min_scaler = lambda x : (x-np.min(x))/(np.max(x)-np.min(x))
# 我的数据集有38列,前36列为数值,第37列为时间,第38列为字符串类型,因此只对前36列做数值归一
for title in x_columns[0:36]:
posedata[title] = posedata[[title]].apply(max_min_scaler)
# 把sit定义为0
posedata.loc[posedata['pose'] == 'sit', 'pose'] = 0
return posedata
precessed_train_data = harmonize_data(traindata)
print(precessed_train_data)
处理后的结果如图: