零、准备工作1234import pandas as pdimport numpy as npdata = pd.read_excel('111.xlsx')data.head() 一、标准化12345678910# 数据标准化data['面积'] # 查看一下# 计算标准化值,返回表格(data['面积'] - data['面积'].mean())/data['面积'].std() # 放入原表格data['面积(标准化)'] = (data['面积'] - data['面积'].mean())/data['面积'].std()# 确认均值是否为0,标准差是否为1,即是否标准化成功data['面积(标准化)'].mean()data['面积(标准化)'].std() 二、归一化1234567# 计算(data['面积'] - data['面积'].min())/(data['面积'].max() - data['面积'].min())# 入表data['面积(归一化)'] = (data['面积'] - data['面积'].min())/(data['面积'].max() - data['面积'].min())# 查看最小值是否为0,最大值是否为1data['面积(归一化)'].min()data['面积(归一化)'].max() 离散化1234567891011121314151617181920212223# 等宽离散化(人为)# 查看一下,确认最大最小值data['最近地铁距离'].max()data['最近地铁距离'].min()# 设置0-500为近,500-1000为较近,1000-2000为远bins = [0,500,1000,2000]# pd库提供相应分类方法pd.cut(data['最近地铁距离'].bins = bins) # 返回表格,告知每一个是哪个区间# 存入data['等宽划分距离'] = pd.cut(data['最近地铁距离'],bins = bins)# 查看每个区间都有多少值data['等宽划分距离'].value_counts()# 等频离散化(每组数量差不多)# 划分三组,q=3pd.qcut(data['最近地铁距离'],q = 3) # 自带函数data['等频划分距离'] = pd.qcut(data['最近地铁距离'],q = 3,duplicates = 'drop') # 存入,最后这个参数可以防止数据不均导致切分时发生的重复切分引发的报错data['等频划分距离'].value_counts() 独热编码1234data['楼层']# 独热编码函数pd.get_dummies(data['楼层']) # 会告诉你 映射数据12345678# 映射函数str(data['等宽划分距离'].iloc[0])data['等宽划分距离'].map(lambda x:str(x)) # 使用cut得到的是区间,不是字符串,这个可以转化为字符串# 根据字典进行映射dis = {'(0,500]'.'近','(500,1000]'.'较近','(1000,2000]'.'远',}data['等宽划分距离'].map(dis) # 根据字典进行替换