华南俳烁实业有限公司

python

當(dāng)前位置:中華考試網(wǎng) >> python >> python問(wèn)答 >> 文章內(nèi)容

pythonnan該怎么去解決?

來(lái)源:中華考試網(wǎng)  [2020年11月18日]  【

  多數(shù)據(jù)不可避免的會(huì)遺失掉,或者采集的時(shí)候采集對(duì)象不愿意透露,這就造成了很多NaN(Not a Number)的出現(xiàn)。這些NaN會(huì)造成大部分模型運(yùn)行出錯(cuò),所以對(duì)NaN的處理很有必要。

  解決方法:

  1、簡(jiǎn)單粗暴地去掉

  1)有如下dataframe,先用df.isnull().sum()檢查下哪一列有多少NaN:

  import pandas as pd

  df = pd.DataFrame({'a':[None,1,2,3],'b':[4,None,None,6],'c':[1,2,1,2],'d':[7,7,9,2]})

  print (df)

  print (df.isnull().sum())

  輸出:

  p1.jpg

  2)將含有NaN的列(columns)去掉:

  data_without_NaN =df.dropna(axis=1)

python課程免費(fèi)試聽(tīng)預(yù)約

  • 地區(qū):
  • 姓名:
  • 手機(jī):

  print (data_without_NaN)

  2、遺失值插補(bǔ)法

  很多時(shí)候直接刪掉列會(huì)損失很多有價(jià)值的數(shù)據(jù),不利于模型的訓(xùn)練。

  所以可以考慮將NaN替換成某些數(shù),顯然不能隨隨便便替換,有人喜歡替換成0,往往會(huì)畫(huà)蛇添足。

  譬如調(diào)查工資收入與學(xué)歷高低的關(guān)系,有的人不想透露工資水平,但如果給這些NaN設(shè)置為0很顯然會(huì)失真。所以Python有個(gè)Imputation(插補(bǔ))的方法。代碼如下:

  from sklearn.preprocessing import Imputer

  my_imputer = Imputer()

  data_imputed = my_imputer.fit_transform(df)

  print (type(data_imputed))

  # array轉(zhuǎn)換成df

  df_data_imputed = pd.DataFrame(data_imputed,columns=df.columns)

  print (df_data_imputed)

責(zé)編:fushihao

上一篇:web開(kāi)發(fā)是選java還是python

下一篇: 沒(méi)有了

  • 會(huì)計(jì)考試
  • 建筑工程
  • 職業(yè)資格
  • 醫(yī)藥考試
  • 外語(yǔ)考試
  • 學(xué)歷考試
合山市| 多伦县| 山东省| 镇雄县| 禹城市| 衡南县| 兴和县| 泽州县| 汝阳县| 建平县| 嫩江县| 黑河市| 抚松县| 定兴县| 志丹县| 平昌县| 柞水县| 东阿县| 神池县| 石泉县| 娱乐| 永昌县| 德昌县| 天水市| 正镶白旗| 伊宁县| 长宁县| 乌拉特中旗| 青龙| 营口市| 固镇县| 南宁市| 通州市| 内乡县| 思南县| 铜陵市| 十堰市| 玉环县| 湾仔区| 江都市| 且末县|