二、缺失值的填充和插值
三、nullable型別
import pandas as pd
import numpy as np
缺失資料可以使用isna
或isnull
(兩個函式沒有區別)來檢視每個單元格是否缺失,結合mean
可以計算出每列缺失值的比例:
想要檢視某一列缺失或者非缺失的行,可以利用series
上的isna
或者notna
進行布林索引
想要同時對幾個列,檢索出全部為缺失或者至少有乙個缺失或者沒有缺失的行,可以使用isna, notna 和 any, all
的組合。
sub_set = df[
['height'
,'weight'
,'transfer']]
df[sub_set.isna().
all(1)
]# 全部缺失
]# 至少有乙個缺失
]# 沒有缺失
dropna
的主要引數為軸方向axis
(預設為0,即刪除行)、刪除方式how
、刪除的非缺失值個數閾值thresh
( 非缺失值 沒有達到這個數量的相應維度會被刪除)、備選的刪除子集 subset ,其中how
主要有any
和all
兩種引數可以選擇。
res = df.dropna(how =
'any'
, subset =
['height'
,'weight'])
res.shape
與上面等價的操作
在fillna
中有三個引數是常用的:value, method, limit
。其中,value
為填充值,可以是標量,也可以是索引到元素的字典對映;method
為填充方法,有用前面的元素填充ffill
和用後面的元素填充bfill
兩種型別,limit
引數表示連續缺失值的最大填充次數。
method = 'ffill'
用前面的值來補充後面的nan
method = 'ffill',limit =1
用前面的值來補充後面的nan,如果有出現的缺失,最多向後補充一次
value
為標量
以字典的方式,通過索引對映填充的值
對於interpolate
而言,除了插值方法(預設為linear
線性插值)之外,有與fillna
類似的兩個常用引數,乙個是控制方向的limit_direction
,另乙個是控制最大連續缺失值插值個數的limit
。其中,限制插值的方向預設為forward
,這與fillna
的method
中的ffill
是類似的,若想要後向限制插值或者雙向限制插值可以指定為backward
或both
。
在 python 中的缺失值用 none 表示,該元素除了等於自己本身之外,與其他任何元素不相等:
在numpy
中利用np.nan
來表示缺失值,該元素除了不和其他任何元素相等之外,和自身的比較結果也返回 false
np.nan
的對應位置會返回false
,但是在使用equals
函式進行兩張表或兩個序列的相同性檢驗時,會自動跳過兩側表都是缺失值的位置,直接返回true
在時間序列的物件中, pandas 利用pd.nat
來指代缺失值,它的作用和np.nan
是一致的
object
是一種混雜物件型別,如果出現了多個型別的元素同時儲存在 series 中,它的型別就會變成object
nullable
就是可空的,言下之意就是序列型別不受缺失值的影響
當呼叫函式sum, prob
使用加法和乘法的時候,缺失資料等價於被分別視作0和1,即不改變原來的計算結果
C 學習第八天
介面 inte ce c 中介面定義的規則 1 介面本身的預設訪問級別為internal,即程式集本身訪問級別 2 介面中方法不能使用任何訪問修飾符 例如 public private internal protected 等修飾。系統自動為其設定為public 3 不能使用virtual修飾 4 ...
JS學習第八天
7.4 for in 使 更加的簡潔 7.5 陣列的應用 1.查詢 a.順序查詢 var a 3,7,11,43,87,5,99,56,82,16 var num number prompt 請輸入要查詢的值 var index 1 最初認為要找的值不在陣列中 for var i in a aler...
Linux C學習第八天
一 運算子與表示式 1.優先順序與結合性 優先順序 運算子的運算順序,優先順序低的先運算 結合性 優先順序相等的情況下,運算子按運算順序計算 2.基本算術運算子 取餘運算,結果的符號取決於運算子左邊那個數。3.型別轉換 強制轉換 在變數前使用括號進行轉換 int a int 1.2 隱式轉換 系統自...