中文字幕av高清_国产视频一二区_男女羞羞羞视频午夜视频_成人精品一区_欧美色视_在线视频这里只有精品

千鋒教育-做有情懷、有良心、有品質的職業教育機構

手機站
千鋒教育

千鋒學習站 | 隨時隨地免費學

千鋒教育

掃一掃進入千鋒手機站

領取全套視頻
千鋒教育

關注千鋒學習站小程序
隨時隨地免費學習課程

當前位置:首頁  >  技術干貨  > DataFrame之缺失值處理

DataFrame之缺失值處理

來源:千鋒教育
發布人:syq
時間: 2022-08-12 14:52:17 1660287137

  只要和數據打交道,就不可能不面對一個令人頭疼的問題-數據集中存在空值。空值處理,是數據預處理之數據清洗的重要內容之一。本篇文章更加細致的討論一下空值在Pandas中的判斷和處理。

DataFrame之缺失值處理

  #### pandas對空值的表現

  首先我們有三張表格:  

屏幕快照 2021-05-26 下午4.37.06

  在jupyter notebook中我們讀取數據如下:  

屏幕快照 2021-05-26 下午4.31.58

  通過對比我們發現:

  > 1. 不加入空格時,序號列被讀為float型,出生日期列被讀為datetime64型,而加入了空格后,統一解讀為object型。

  >

  > 2. 不加入空格時,序號列和姓名列中的缺失值默認為NaN,而時間則為NaT,而加了空格后,缺失值統一為NaN。

  > 3. 當時間識別為datetime64類型時,其格式就是輸入的格式,但其識別為字符串時,格式會統一加上時分秒。

  #### 判斷缺失值

  缺失值:在DataFrame中讀出數據顯示為NaN或者NaT(缺失時間),在Series中為None或者NaN均可。

  快速確認數據集中是不是存在缺失值。有兩個函數 **isnull, isna**,這兩個函數可以幫助我們快速定位數據集中每個元素是否為缺失值。

  ##### isna(isnull)的使用:

  先說一下被問過很多次的問題,就是isna和isnull的區別?我們看一下如下代碼:  

屏幕快照 2021-05-26 下午6.11.19

  說明其實這兩個是一個函數,isnull就是isna。ok明白了嗎?

  下面我們看如何使用isna,以上面的表格數據為例:

  查看所有列的缺失值情況

  ```

  import pandas as pd

  ts2 = pd.read_excel('table1.xlsx',sheet_name='Sheet2',encoding='gbk') # 注意編碼設置根據情況設置也可以省略

  pd.isna(ts2) # 或者ts2.isna()

  ```

  結果:  

屏幕快照 2021-05-26 下午6.43.09

  查看某一列的缺失值情況

  ```

  pd.isna(ts2['出生日期']) # ts2['出生日期'].isna()

屏幕快照 2021-05-26 下午6.12.59

  ```找出出生日期有缺失值的行,當然也可以是其他的列名

  ```

  ts2[ts2['出生日期'].isna()]

  ```  

屏幕快照 2021-05-26 下午6.51.50

  #### 缺失值處理

  對缺失值的處理主要有兩種方式:

  > 1. 填充

  >

  > 2. 刪除

  ##### 缺失值填充

  缺失值的填充我們使用:fillna。

  > **DataFrame.fillna(value=None, method=None, axis=None, inplace=False, limit=None, downcast=None, **kwargs)**

  >

  > **函數作用:填充缺失值**

  value: 需要用什么值去填充缺失值

  axis: 確定填充維度,從行開始或是從列開始

  method:ffill:用缺失值前面的一個值代替缺失值,如果axis =1,那么就是橫向的前面的值替換后面的缺失值,如果axis=0,那么則是上面的值替換下面的缺失值。backfill/bfill,缺失值后面的一個值代替前面的缺失值。注意這個參數不能與value同時出現

  limit:確定填充的個數,如果limit=2,則只填充兩個缺失值。

  ```

  # 仍然是上面的數據:Sheet1

  ts1 = pd.read_excel('table1.xlsx',sheet_name='Sheet1')

  ts1.fillna(axis=0,method='bfill')

  ts1.fillna(axis=0,method='ffill')

  ts1.fillna(axis=1,method='bfill') # 當前axis=1沒有太大意義,還破壞了結構

  ```  

屏幕快照 2021-05-26 下午7.07.19

  也可以使用fillna(固定value)填充所有或者填充某列內容  

屏幕快照 2021-05-26 下午7.32.27

  如果加上limit參數就會對每列出現的替換值有次數限制。

  ##### 缺失值刪除

  > DataFrame.dropna(axis=0, how='any', thresh=None, subset=None, inplace=False)

  >

  > 函數作用:刪除含有空值的行或列

  >

  axis:維度,axis=0表示index行,axis=1表示columns列,默認為0

  how: "all"表示這一行或列中的元素全部缺失(為NaN)才刪除這一行或列,"any"表示這一行或列中只要有元素缺失,就刪除這一行或列

  thresh: 一行或一列中至少出現了thresh個才刪除。

  subset:在某些列的子集中選擇出現了缺失值的列刪除,不在子集中的含有缺失值得列或行不會刪除(有axis決定是行還是列)

  inplace:刷選過缺失值得新數據是存為副本還是直接在原數據上進行修改。  

屏幕快照 2021-05-26 下午7.43.52  

屏幕快照 2021-05-26 下午7.45.15

  注意一下inplace參數,inplace默認為False是返回新的數據集,而如果inplace為True則表示在原數據集上操作。  

屏幕快照 2021-05-27 上午10.02.24

  更多關于“Python 培訓”的問題,歡迎咨詢千鋒教育在線名師。千鋒教育多年辦學,課程大綱緊跟企業需求,更科學更嚴謹,每年培養泛IT人才近2萬人。不論你是零基礎還是想提升,都可以找到適合的班型,千鋒教育隨時歡迎你來試聽

tags:
聲明:本站稿件版權均屬千鋒教育所有,未經許可不得擅自轉載。
10年以上業內強師集結,手把手帶你蛻變精英
請您保持通訊暢通,專屬學習老師24小時內將與您1V1溝通
免費領取
今日已有369人領取成功
劉同學 138****2860 剛剛成功領取
王同學 131****2015 剛剛成功領取
張同學 133****4652 剛剛成功領取
李同學 135****8607 剛剛成功領取
楊同學 132****5667 剛剛成功領取
岳同學 134****6652 剛剛成功領取
梁同學 157****2950 剛剛成功領取
劉同學 189****1015 剛剛成功領取
張同學 155****4678 剛剛成功領取
鄒同學 139****2907 剛剛成功領取
董同學 138****2867 剛剛成功領取
周同學 136****3602 剛剛成功領取
相關推薦HOT
主站蜘蛛池模板: 国产一区二区久久久 | 999精品在线 | 欧美三区视频 | 日本精品中文字幕 | 久久69国产一区二区蜜臀 | 毛片av在线 | 欧美日韩在线播放 | 国产九九九 | 精品欧美乱码久久久久久 | 欧美午夜精品一区二区三区电影 | 久草天堂 | 四虎免费在线播放 | 国产精品视频免费 | 久久亚洲一区 | 日韩一区二区三区精品 | 91精品国产91久久久久久吃药 | 91精品蜜臀一区二区三区在线 | 国产嫩草91 | 成人在线视频一区二区 | 日韩视频在线视频 | 99精品视频在线 | 中文字幕一区二区三区四区 | 1区2区视频 | 99久久精品国产一区二区三区 | 精品一区二区视频 | 亚洲九九 | 狠狠躁夜夜躁人人爽天天高潮 | 色www精品视频在线观看 | 日韩中文字幕一区二区 | 中文字幕亚洲一区二区三区 | 亚洲精品久久久久久下一站 | 在线观看日韩一区 | 国产视频第一区 | 色综合99 | 5060毛片| 国产美女久久 | 一区二区视频 | 国产亚洲欧美在线 | 黄色网页免费观看 | aaa日本高清在线播放免费观看 | 欧美专区在线 |