对csv数据集的每一列进行归一化与字符串类型的数值替换

最近在做数据处理相关的东西,有用到数据归一化,因此做下记录。

在数据处理时,需要对数据集中除了‘time’列和‘pose’列的剩下所有列都做归一化处理。

对于‘pose’列,我们要把    sit    这个属性变为0。

下图为部分数据:

对csv数据集的每一列进行归一化与字符串类型的数值替换_第1张图片

 读取文件并归一化代码如下所示:

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)

 处理后的结果如图:

对csv数据集的每一列进行归一化与字符串类型的数值替换_第2张图片

 

 

你可能感兴趣的:(Python)