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

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

在数据处理时,需要对数据集中除了‘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)

 处理后的结果如图:

归一化处理后的图片

 

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值