pandas組隊學習 task7

2022-07-10 12:42:14 字數 3681 閱讀 1746

使用isna函式,返回值為每個位置是否缺失的邏輯變數。

檢視某一列缺失的行,可以根據isna的返回值進行索引,例如:

df[df.height.isna()].head()
如果要檢視多個列的情況,可以使用anyall

例如,isna+all檢視三個列同時缺失:

sub_set = df[['height', 'weight', 'transfer']]

df[sub_set.isna().all(1)]

isna+any:至少乙個缺失

df[sub_set.isna().any(1)].head()
notna+all:沒有缺失

df[sub_set.notna().all(1)].head()

使用dropna函式:

例如,刪除身高體重至少有乙個缺失的行:

res = df.dropna(how = 'any', subset = ['height', 'weight'])
按照第一節的內容,也可以寫作:

subset = ['height', 'weight']

res = df[sub_set.notna().all(1)] #即索引沒有乙個缺失的

刪除超過15個缺失值的列:

res = df.dropna(1, thresh=df.shape[0]-15)

使用fillna函式:

下面看具體的使用例子:

s = pd.series([np.nan, 1, np.nan, np.nan, 2, np.nan],

list('aaabcd'))

sout[336]:

a nan

a 1.0

a nan

b nan

c 2.0

d nan

dtype: float64

使用前值填充:

s.fillna(method='ffill')

out[337]:

a nan

a 1.0

a 1.0

b 1.0

c 2.0

d 2.0

dtype: float64

連續缺失值,最多填充一次:

s.fillna(method='ffill', limit=1)

out[338]:

a nan

a 1.0

a 1.0

b nan

c 2.0

d 2.0

dtype: float64

通過索引對映填充:

s.fillna()

out[339]:

a 100.0

a 1.0

a 100.0

b nan

c 2.0

d 200.0

dtype: float64

練一練

解答:

生成乙個序列:

s = pd.series([1,np.nan, 3,np.nan,np.nan])

sout[342]:

0 1.0

1 nan

2 3.0

3 nan

4 nan

dtype: float64

先用前值填充,然後再用後值填充,最後取平均:

a = s.fillna(method = 'ffill',limit=1)

b = s.fillna(method = 'bfill',limit=1)

s = (a+b)/2

s0 1.0

1 2.0

2 3.0

3 nan

4 nan

dtype: float64

使用interpolate函式,預設為線性插值:

生成乙個序列:

s = pd.series([np.nan, np.nan, 1,

....: np.nan, np.nan, np.nan,

....: 2, np.nan, np.nan])

sout[361]:

0 nan

1 nan

2 1.0

3 nan

4 nan

5 nan

6 2.0

7 nan

8 nan

dtype: float64

線性向後插值,最大連續個數為1:

res = s.interpolate(limit_direction='backward', limit=1)

resout[358]:

0 nan

1 1.00

2 1.00

3 nan

4 nan

5 1.75

6 2.00

7 nan

8 nan

dtype: float64

最近鄰插值,使用離缺失值最近的元素:

res = s.interpolate('nearest')

resout[363]:

0 nan

1 nan

2 1.0

3 1.0

4 1.0

5 2.0

6 2.0

7 nan

8 nan

dtype: float64

索引插值,根據索引的大小進行線性插值:

s = pd.series([0,np.nan,10],index=[0,1,10])

sout[365]:

0 0.0

1 nan

10 10.0

dtype: float64

s.interpolate(method='index')

out[36]:

0 0.0

1 1.0

10 10.0

dtype: float64

Go學習之旅 Task7

在go語言中函式定義格式如下 func functionname parameter list returntypes 例1 下面的函式是用於求兩個數的和 func getsum num1 int num2 int int 這個函式傳遞了兩個引數,分別為num1與num2,並且他們都為int型別,將...

動手學深度學習Task7

一 優化演算法高階 二 word2vec 三 詞嵌入高階 一 優化演算法高階 在 section 11.4 中,我們提到,目標函式有關自變數的梯度代表了目標函式在自變數當前位置下降最快的方向。因此,梯度下降也叫作最陡下降 steepest descent 在每次迭代中,梯度下降根據自變數當前位置,沿...

《李巨集毅機器學習》task7

熵是用來衡量乙個系統混論程度的物理量,代表乙個系統中蘊含多少資訊量,資訊量越大表明乙個系統不確定性就越大,就存在越多的可能性。演算法支援模型 樹結構特徵選擇 連續值處理 缺失值處理 剪枝id3 分類多叉樹 資訊增益 不支援不支援 不支援c4.5 分類多叉樹 資訊增益比 支援支援 支援cart 分類 ...