簡單程式碼:將回歸特徵轉換為分類特徵

youou發表於2021-09-09
import os
import pandas as pd 
import numpy  as np 
import math 

def train_data_reads(path):
    data_directory  = path + "/data"
    #獲取資料路徑
    data_name_list  = os.listdir(data_directory)
    file_name       = data_name_list[0]
    #資料的路徑:data_path
    data_path       = data_directory + "/" + file_name
    name,extension  = file_name.split(".")
    if extension == "csv":
        try:
            data = pd.read_csv(data_path,encoding = "gbk")
        except:
            data = pd.read_csv(data_path,encoding = "utf-8")
    elif extension == "txt":
        try:
            data = pd.read_csv(data_path,encoding = "gbk",sep = "t")
        except:
            data = pd.read_csv(data_path,encoding = "utf-8",sep = "t")
    else:
        data = pd.read_excel(data_path)
    return data 
def feature_label_split(data):
    #獲取dataFrame的列名
    name_list = data.columns.values.tolist()
    label_name = name_list[len(name_list) - 1]
    #將資料中label為空的資料刪除
    data = data[np.isnan(data[label_name]) == False]
    #拆分特徵與標籤
    x = data.drop([label_name],axis = 1)
    y = data[label_name]
    y = list(map(lambda x: 0 if x >= 7 else 1,y))
    y = pd.DataFrame(y,index = data.index)
    new_data = pd.concat([x,y],axis = 1)
    return new_data
     
def main():
    path = "E:/AnaLinReg/Data_upload_cls"	
    data = train_data_reads(path)	
    data = feature_label_split(data)	
    data.to_csv('D1.csv',encoding = 'utf-8')
    print ('Done')
 
if __name__ == "__main__":
    main()
    
#迴歸特徵:最後一列是1~10的數字
#分類特徵: 最後一列只有0和1
#迴歸特徵的0~6,對應分類特徵的1
#迴歸特徵的7~10,對應分類特徵的0


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4729/viewspace-2822999/,如需轉載,請註明出處,否則將追究法律責任。

相關文章