亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

利用pandas將非數值數據轉換成數值的方式

發布時間:2020-10-15 10:01:10 來源:腳本之家 閱讀:246 作者:可以調素琴 欄目:開發技術

handle non numerical data

舉個例子,將性別屬性男女轉換成0-1,精通ML的小老弟們可以略過本文~~,

這里不考慮稀疏向量的使用,僅提供一些思路。本來想直接利用pandas的DataFrame.iloc加上for循環直接轉換,但試過一遍之后,原數據并有改變。。。。蛋疼寫了一個比較 菜的函數,如下。

# 非數值列處理函數
def handel_non_numerical_data(df,name): #----------------name是需要處理的列名稱(str),暫不考慮列表
 nrows = len(df[name])  #----------------數據集的行數
 old_col = df.columns.tolist() #----------------初始的列名集合
 name_index = old_col.index(name) #---------要處理的列的在數據集中的索引值
 name_data = df[name].values.tolist()#-----------將要處理煩人列復制成一個列表
 df.drop([name],axis =1,inplace =True) 
 unique_kinds = set(name_data)
 convert_dict = {}; x = 0   #構造對應種類數值轉化字典
 for i in unique_kinds:
 convert_dict[i] = x
 x += 1
 def convert(val):
 return convert_dict[val] 
 name_data = list(map(convert,name_data))#利用map函數直接迭代轉化
 
 new_col = df.columns.tolist()
 new_col.insert(name_index,name)
 df.reindex(columns = new_col) #----------------重構數據的列
 df[name] = name_data

跑了一遍沒有出錯,注意這只是baseline…,如果對數值有要求的話,需要自行改動

原本是想直接用youtube上sentdex老哥ml35期視頻里的代碼的,但發現了幾個較為嚴重的bug,而且總是運行出錯 ,如下

def handle_non_numerical_data(df):
 columns = df.columns.values
 for column in columns:
 text_digit_vals = {}
 def convert_to_int(val):
  return text_digit_vals[val]
 if df[column].dtype != np.int64 and df[column].dtype != np.float64:
  column_content = df[column].values.tolist()
  unique_elements = set(column_content)
  print(unique_elements)
  x =0
  for unique in unique_elements:
  if unique not in text_digit_vals:
   text_digit_vals[unique] = x
   x+=1
 df[column] = list(map(convert_to_int,df[column]))

可見,非常暴力,注意到他的if條件,有的數據集中會出現字母數字組合的情況【會出現dtype=object的情況】,set之后種類會草雞多…,這樣的話數值轉換也就失去了意義【當然,如果你的樣本量是億級的,幾千幾百個種類無所謂我也無fuck說,這種情況我認為必須使用稀疏向量了】,另外這個代碼一直報錯,不知道為什么,有興趣的老哥可以復制跑一下幫我解答一下。。。

---------------------------2019-08-21分割:

https://www.kaggle.com/nroman/recursive-feature-elimination

LabelEncoder方法

from sklearn.preprocessing import LabelEncoder

利用pandas將非數值數據轉換成數值的方式

注:tqdm是進度條庫,不需要關注。另外沒有去看這個接口的源碼,應該也是最簡單的one-hot

以上這篇利用pandas將非數值數據轉換成數值的方式就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

长海县| 包头市| 淳化县| 南靖县| 什邡市| 永顺县| 永靖县| 辽源市| 盐源县| 鹿泉市| 永川市| 昔阳县| 葫芦岛市| 陆河县| 托里县| 富锦市| 黎川县| 凌云县| 揭西县| 义乌市| 南涧| 冕宁县| 宝清县| 农安县| 雷波县| 临清市| 万荣县| 宜良县| 象山县| 白玉县| 佛教| 曲阜市| 正镶白旗| 垫江县| 庄浪县| 定南县| 崇州市| 新源县| 漳州市| 枣庄市| 河池市|