1. 程式人生 > >Python中缺失值分類及Pandas中缺失資料處理函式

Python中缺失值分類及Pandas中缺失資料處理函式

一、Python中缺失值分類

Python中有三種缺失值(空值):

形式 含義
None Python內建的None值,如建立一個空的列表list=[]
NA 在pandas中,將缺失值表示為NA,表示不可用not available,主要表示為np.nan
NaN 對於數值資料,pandas使用浮點值NaN(Not a Number)表示缺失資料

二、缺失值處理相關操作

通常遇到缺失值需要先找出或檢視缺失值isnull()/notnull(),然後填充fillna()或刪除dropna()缺失值。
本文案例資料集下載(也可評論或私信作者獲取資料集)

  1. 查詢缺失值isnull()以及notnull()函式

該方法對物件進行元素級操作,返回一組布林值True/False。

#匯入資料
fileDf=pd.read_excel('Python資料/朝陽醫院2018年銷售資料.xlsx',sheet_name='Sheet1')
fileDf.head()
>>>
             購藥時間          社保卡號      商品編碼     商品名稱  銷售數量   應收金額    實收金額
0  2018-01-01 星期五  1.616528e+06  236701.0  強力VC銀翹片   6.0   82.8   69.00
1  2018-01-02 星期六  1.616528e+06  236701.0
清熱解毒口服液 1.0 28.0 24.64 2 2018-01-06 星期三 1.260283e+07 236701.0 感康 2.0 16.8 15.00 3 2018-01-11 星期一 1.007034e+10 236701.0 三九感冒靈 1.0 28.0 28.00 4 2018-01-15 星期五 1.015543e+08 236701.0 三九感冒靈 8.0 224.0 208.00 #isnull()返回一組布林值 print(fileDf['購藥時間'].isnull().head()) >>> 0 False 1 False
2 False 3 False 4 False Name: 購藥時間, dtype: bool #檢視某些有缺失值欄位的資料情況 fileDf[fileDf['購藥時間'].isnull()|fileDf['社保卡號'].isnull()] >>> 購藥時間 社保卡號 商品編碼 商品名稱 銷售數量 應收金額 實收金額 6570 NaN 11778628.0 2367011.0 高特靈 10.0 56.0 56.00 6571 2018-04-25 星期二 NaN 2367011.0 高特靈 2.0 11.2 9.86 6574 NaN NaN NaN NaN NaN NaN NaN
  1. 填充缺失值fillna()函式

fillna(value=None, axis=0, inplace=False)利用value來填充相應的缺失值,預設inplace不替換原資料只是產生副本。

#填充缺失值
print('填充前缺失情況:',fileDf[['購藥時間','社保卡號']][fileDf['購藥時間'].isnull()|fileDf['社保卡號'].isnull()])
#利用購藥時間列的眾數來填充缺失值
fileDf['購藥時間'].fillna(fileDf['購藥時間'].mode()[0],inplace=True)
print('填充後缺失情況:',fileDf[['購藥時間','社保卡號']][fileDf['購藥時間'].isnull()|fileDf['社保卡號'].isnull()])
>>>
填充前缺失情況:    購藥時間        社保卡號
		6570  NaN            11778628.0
		6571  2018-04-25 星期二   NaN
		6574  NaN                NaN

填充後缺失情況:    購藥時間        社保卡號
		6571  2018-04-25 星期二   NaN
		6574  2018-04-15 星期五   NaN
  1. 剔除缺失值dropna()函式

dropna(subset=[],axis=0, how='any', thresh=None)刪除指定列subset中有缺失值的資料,預設inplace不替換原資料只是產生副本,how可選any或all,all僅在切片中資料全部缺失時才剔除。

#刪除缺失值
print('刪除前缺失情況:',fileDf[['購藥時間','社保卡號']][fileDf['購藥時間'].isnull()|fileDf['社保卡號'].isnull()])
#刪除購藥時間中有缺失值的資料
fileDf.dropna(subset=['購藥時間'],inplace=True)
print('刪除後缺失情況:',fileDf[['購藥時間','社保卡號']][fileDf['購藥時間'].isnull()|fileDf['社保卡號'].isnull()])
>>>
刪除前缺失情況:    購藥時間        社保卡號
   6570             NaN       11778628.0
   6571       2018-04-25 星期二    NaN
   6574             NaN           NaN
刪除後缺失情況:    購藥時間        社保卡號
   6571       2018-04-25 星期二    NaN

相關推薦

Python缺失分類Pandas缺失資料處理函式

一、Python中缺失值分類 Python中有三種缺失值(空值): 形式 含義 None Python內建的None值,如建立一個空的列表list=[] NA 在pandas中,將缺失值表示為NA,表示不可用not available,主

Python基礎練習——字串的字元分類個數

題目:輸入一個字串,分別統計出其中英文字母、空格、數字和其它字元的個數 編寫思路: 1、字串的遍歷,和列表類似,可以把字串當做元素都是一個字元的一個字元列表,它可以和列表有公共的語法 2、分不同的類別,若有符合條件的字元直接在類別數上加1就可以 初始程式

五、mysqlsql語句分類常用操作

所表 desc 直接 常用操作 文件 ble div alter .cn 1.sql語句分類: DQL語句  數據查詢語言  select DML語句  數據操作語言  insert delete update DDL語句  數據定義語言  create drop

python學習筆記——(2)pandas資料型別

    在用python進行資料處理的時候,自帶的五種資料型別使用起來顯然是有侷限性的,python之強大在於各種包,在資料處理中用的最多的就是pandas和numpy。本文章主要介紹pandas的資料結構。     pandas有兩種資料結構  

python學習筆記】40:PandasDataFrame的分組/分割/合併

學習《Python3爬蟲、資料清洗與視覺化實戰》時自己的一些實踐。 DataFrame分組操作 注意分組後得到的就是Series物件了,而不再是DataFrame物件。 import pandas as pd # 還是讀取這份檔案 df = pd.read_csv("

軟體測試分類測試三個主要概念

軟體測試分類: 按測試技術,軟體測試可分為:黑盒測試、白盒測試、灰盒測試 黑盒測試:在程式介面進行測試,它只是檢查程式功能是否按照規格說明書的規定正常使用。也被稱為功能測試或者資料驅動測試。 白盒測試:要完全瞭解程式結構和處理過程,它按照程式內部邏輯測試程式,檢驗程式中每條

手把手教你在Python實現文字分類(附程式碼、資料集)

作者: Shivam Bansal 翻譯:申利彬校對:丁楠雅本文約2300字,建議

關於JAVA表示式型別轉換

short s1 = 1; s1 = s1 + 1;有什麼錯? short s1 = 1; s1 += 1;有什麼錯? short s1 = 1; s1 = s1 + 1;有錯,s1是short型,s1+1是int型,不能顯式轉化為short型。可修改為s1 =(shor

mysql資料庫指定在所有表所有欄位的替換

MySQL資料庫:   指定值在資料庫中所有表所有欄位值的替換(儲存過程):   1.寫一個儲存過程,查指定資料庫中所有的表名:  CREATE PROCEDURE init_replace(in orig_str varchar(100),in new_str varchar(100),in db_n

如何將Column.isin與List使用(判斷column是否在List)--filter(Column.isin(List))

spark datafream 中某列的值進行過濾 val items = List("a", "b", "c") sqlContext.sql("select c1 from table") .filter($"c1".isin(items)) .co

[圖形學]VS2017OpenGL的下載安裝的異常

1、放dll檔案:C:\Windows\SysWOW64 或C:\Windows\windows32 2、lib和h:C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\ lib放在lib資料夾下。

Scikit-learn 釋出 0.20版本!新增處理缺失、合併Pandas等亮點功能

整理 | Jane出品 | AI科技大本營之前一直預告 Scikit-learn 的新版本會在

Android呼叫js方法js呼叫本地方法

Android中內建了WebKit模組,而該模組的Java層檢視類就是WebView,所有需要使用Web瀏覽器功能的Android都需要建立該檢視類物件顯示和處理請求的網路資源。目前WebKit支援Http、Https、Ftp和JavaScript請求。下面我們重點看一下如

在PHP裡.如何定義二維陣列和賦.並且把陣列填充到table

php: require 'smarty/libs/Smarty.class.php'; $smarty = new Smarty;//設定各個目錄的路徑,這裡是安裝的重點 $smarty->template_dir ="smarty/templates/temp

如何實現將JS動態新增的TR傳到後臺並批量插入

在我的上一篇文章當中,已經在靜態頁面中實現了JS動態新增刪除TR。在實際工作中,更多的是需要將JS所新增的tr中的值儲存至資料庫中。下面我將介紹在SSH框架中如何實現這一功能需求。(以下均由我所做的實際專案給出功能程式碼) 在JSP中,JS程式碼會稍有變化。 funct

DOM的事件型別HTML5的事件型別

DOM中事件型別有: UI(使用者介面)事件,使用者與頁面上元素互動時觸發 ; 焦點事件:當元素獲得或失去焦點時觸發;  滑鼠事件:當用戶通過滑鼠在頁面上執行操作時觸發; 滾輪事件:當使用滑鼠

Android獲取.Gradle檔案和Manifests檔案

專案中有登入頁面,但平時除錯的時候每次都輸入使用者名稱密碼來登入太麻煩,寫成固定值釋出的時候又要重新替換和註釋。所以就想從不同版本獲得資訊然後程式碼中控制。 在Android專案檔案中的build.gradle中,在android標籤下的defaultConf

22. datenum Matlab的日期型資料處理函式

datenum(‘14-Mar-2008’) 執行結果:            733481   (1) 時間計算中,matlab是計算時間點2018/3/14距離 公元元年Jan01(0000-01-01)的

Python Pandas 二維資料處理與 T-SQL 對應關係

Pandas 是 python的一個數據分析包,它提供了大量的資料模型型和函式庫,對資料處理很方便。DataFrame 是一個二維表格資料結構,可以當做資料庫中的一張關係表。Pandas 可以實現 SQL 中的語句,對 DataFrame  的操作相當於對二維表操作一樣。

C語言堆記憶體的開闢和釋放與記憶體處理函式

C語言動態分配記憶體,malloc的出現就是來彌補靜態記憶體分配的缺點 比如說我們在定義陣列的時候,陣列的長度必須是一個常量,不能改變的值,假如我事先定義了陣列,一旦業務需求發生改變,那麼這個陣列就不能再使用了。 傳統的陣列定義也就是靜態分配,是不能夠手動釋放的,只能等待系統釋放,靜態分配的記憶體,是分配