欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

利用pandas將非數(shù)值數(shù)據(jù)轉(zhuǎn)換成數(shù)值的方式

 更新時間:2019年12月18日 15:39:20   作者:可以調(diào)素琴  
今天小編就為大家分享一篇利用pandas將非數(shù)值數(shù)據(jù)轉(zhuǎn)換成數(shù)值的方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

handle non numerical data

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

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

# 非數(shù)值列處理函數(shù)
def handel_non_numerical_data(df,name): #----------------name是需要處理的列名稱(str),暫不考慮列表
 nrows = len(df[name])  #----------------數(shù)據(jù)集的行數(shù)
 old_col = df.columns.tolist() #----------------初始的列名集合
 name_index = old_col.index(name) #---------要處理的列的在數(shù)據(jù)集中的索引值
 name_data = df[name].values.tolist()#-----------將要處理煩人列復(fù)制成一個列表
 df.drop([name],axis =1,inplace =True) 
 unique_kinds = set(name_data)
 convert_dict = {}; x = 0   #構(gòu)造對應(yīng)種類數(shù)值轉(zhuǎn)化字典
 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函數(shù)直接迭代轉(zhuǎn)化
 
 new_col = df.columns.tolist()
 new_col.insert(name_index,name)
 df.reindex(columns = new_col) #----------------重構(gòu)數(shù)據(jù)的列
 df[name] = name_data

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

原本是想直接用youtube上sentdex老哥ml35期視頻里的代碼的,但發(fā)現(xiàn)了幾個較為嚴重的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條件,有的數(shù)據(jù)集中會出現(xiàn)字母數(shù)字組合的情況【會出現(xiàn)dtype=object的情況】,set之后種類會草雞多…,這樣的話數(shù)值轉(zhuǎn)換也就失去了意義【當然,如果你的樣本量是億級的,幾千幾百個種類無所謂我也無fuck說,這種情況我認為必須使用稀疏向量了】,另外這個代碼一直報錯,不知道為什么,有興趣的老哥可以復(fù)制跑一下幫我解答一下。。。

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

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

LabelEncoder方法

from sklearn.preprocessing import LabelEncoder

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

以上這篇利用pandas將非數(shù)值數(shù)據(jù)轉(zhuǎn)換成數(shù)值的方式就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python流行ORM框架sqlalchemy安裝與使用教程

    Python流行ORM框架sqlalchemy安裝與使用教程

    這篇文章主要介紹了Python流行ORM框架sqlalchemy安裝與使用,結(jié)合具體實例形式分析了sqlalchemy的安裝及ORM映射、查詢等相關(guān)操作技巧,需要的朋友可以參考下
    2019-06-06
  • 屬性與 @property 方法讓你的python更高效

    屬性與 @property 方法讓你的python更高效

    這篇文章主要介紹了python 屬性與 @property 方法的相關(guān)資料,幫助大家更好的理解和學習python,感興趣的朋友可以了解下
    2020-09-09
  • 16個python常用魔法函數(shù)小結(jié)

    16個python常用魔法函數(shù)小結(jié)

    本文主要介紹了16個python常用魔法函數(shù)小結(jié),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-05-05
  • Django學習之文件上傳與下載

    Django學習之文件上傳與下載

    這篇文章主要為大家詳細介紹了Django學習之文件上傳與下載,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-10-10
  • 利用Python為女神制作一個專屬網(wǎng)站

    利用Python為女神制作一個專屬網(wǎng)站

    520不知道送什么禮物?快跟隨小編一起學習一下如何利用Python語言制作一個專屬的網(wǎng)站送給女神吧!文中的示例代碼講解詳細,需要的可以參考一下
    2022-05-05
  • 淺談MySQL中的觸發(fā)器

    淺談MySQL中的觸發(fā)器

    這篇文章主要介紹了MySQL中的觸發(fā)器,包括使用觸發(fā)器添加、更新、刪除用戶等操作,需要的朋友可以參考下
    2015-05-05
  • 使用python制作一個解壓縮軟件

    使用python制作一個解壓縮軟件

    這篇文章主要介紹了python制作一個解壓縮軟件的方法,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-11-11
  • Python抽象和自定義類定義與用法示例

    Python抽象和自定義類定義與用法示例

    這篇文章主要介紹了Python抽象和自定義類定義與用法,結(jié)合實例形式分析了Python抽象方法、抽象類相關(guān)功能、定義、用法及相關(guān)操作注意事項,需要的朋友可以參考下
    2018-08-08
  • Pytorch框架構(gòu)建ResNet模型的實現(xiàn)示例

    Pytorch框架構(gòu)建ResNet模型的實現(xiàn)示例

    本文主要介紹了Pytorch框架構(gòu)建ResNet模型的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-06-06
  • Python分布式進程中你會遇到的問題解析

    Python分布式進程中你會遇到的問題解析

    這篇文章主要介紹了Python分布式進程中你會遇到的問題,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-05-05

最新評論