标准化_1:
import pandas as pd # 读取数据 grade = pd.read_csv('cj.csv', encoding='gbk') # Z-score标准化 from sklearn.preprocessing import * scaler_z = StandardScaler(copy=True) for i in ["英语","体育","军训","数分","高代","解几"]: grade[i] = scaler_z.fit_transform(grade[[i]]) print(grade) grade_zscore = grade.iloc[:,-7:-1].sum(axis=1) # Min-Max标准化 from sklearn.preprocessing import * scaler_m = MinMaxScaler(copy=False) for j in ["英语","体育","军训","数分","高代","解几"]: grade[j] = scaler_m.fit_transform(grade[[j]]) grade_minmax = grade.iloc[:, -7:-1].sum(axis=1)
离群值:
# 导入需要的包 import pandas as pd from sklearn.neighbors import * # 读取数据 car_sales = pd.read_csv('car_sales.csv',encoding='gbk') # 取出Quantity列 data = car_sales[["Quantity"]] # 局部因常因子检测 scaler = LocalOutlierFactor() scaler.fit(data) # 添加新列LOF保存局部离群因子的值 data['LOF'] = - scaler.negative_outlier_factor_ # 选出局部离群因子大于1.5的样本 quantity_lof = data[data.LOF>1.5] print(quantity_lof )
标准化_2:
# 导入需要的工具包 import pandas as pd import numpy as np from sklearn.preprocessing import * # 读取数据集 std_df = pd.read_csv('car_sales.csv', encoding = 'gbk') print(std_df) scaler = StandardScaler(copy=True) # 获得Z-Score标准化后的DataFrame对象 std_df_zscore = pd.DataFrame(scaler.fit_transform(std_df[['Quantity']]), columns = ['Quantity_StandardScaled'] ) # 为上述DataFrame对象添加初始数据集中的销量列'Quantity' std_df_zscore['Quantity'] = pd.DataFrame(['Quantity']) # 输出Z-Score标准化后汽车销量的均值和方差 #print('均值:', std_df_zscore['____'].mean(axis = 0)) #print('方差:', std_df_zscore['____'].std(axis = 0)) out = std_df_zscore.head(5) print(out)
缺失值:
# 导入需要的工具包 import pandas as pd from sklearn.preprocessing import Imputer # 读取数据集 data = pd.read_csv('car_sales.csv') # print(data) # 设定参数 # imp = Imputer(missing_values = 'NaN', strategy = '____', axis = ____) imp = Imputer(missing_values = 'NaN', strategy = 'mean', axis = 0) # 拟合填补参数 temp = imp.fit(data[['Quantity']]) print(temp) # 缺失值填充 # data['Quantity'] = imp.transform(____) data['Quantity'] = imp.transform(data[['Quantity']]) # 验证是否填充 if data['Quantity'].isnull().any() == False: print("汽车销量缺失值已填充!")
离散化:
# 导入需要的工具包 import pandas as pd import numpy as np from sklearn.preprocessing import * # 读取数据集 binary_df = pd.read_csv('car_sales.csv',encoding='gbk') # 二值化,阈值设置为800 scaler = Binarizer(threshold=800) quantity_binary = scaler.fit_transform(binary_df[['Quantity']]) # 查看销量大于800的有多少数据 print(sum(quantity_binary))
特征编码:
# 导入需要的工具包 import pandas as pd import numpy as np from sklearn.preprocessing import * # 读取数据集 feature_df = pd.read_csv('car_sales.csv',encoding='gbk') # print(feature_df) # 建立标签编码器 le = LabelEncoder() # 进行标签编码,并返回ndarray对象label_list # label_list = le.fit(feature_df.['Make']) label_list = le.fit_transform(feature_df['Make']) print(label_list) # 查看本数据集中共有多少汽车品牌 print(le.classes_)