資料分析學習筆記4 處理缺失資料

2022-08-23 21:03:09 字數 2148 閱讀 5237

對於數值資料,pandas使用浮點值nan(not a number)表示缺失資料。我們稱其為哨兵值。

過濾掉缺失資料的辦法有很多種。你可以通過pandas.isnull或布林索引的手工方法,但dropna可能會更實用一些。對於乙個series,dropna返回乙個僅含非空資料和索引值的series:

in [15]: from numpy import nan as na

in [16]: data = pd.series([1, na, 3.5, na, 7])

in [17]: data.dropna()

out[17]:

0 1.0

2 3.5

4 7.0

dtype: float64

通過乙個常數呼叫fillna就會將缺失值替換為那個常數值:

in [27]: df = pd.dataframe(np.random.randn(7, 3))

in [28]: df.iloc[:4, 1] = na

in [29]: df.iloc[:2, 2] = na

in [30]: df

out[30]:

0 1 2

0 -0.204708 nan nan

1 -0.555730 nan nan

2 0.092908 nan 0.769023

3 1.246435 nan -1.296221

4 0.274992 0.228913 1.352917

5 0.886429 -2.001637 -0.371843

6 1.669025 -0.438570 -0.539741

in [33]: df.fillna(0)

out[33]:

0 1 2

0 -0.204708 0.000000 0.000000

1 -0.555730 0.000000 0.000000

2 0.092908 0.000000 0.769023

3 1.246435 0.000000 -1.296221

4 0.274992 0.228913 1.352917

5 0.886429 -2.001637 -0.371843

6 1.669025 -0.438570 -0.539741

通過乙個字典呼叫fillna,就可以實現對不同的列填充不同的值

in [34]: df.fillna()

out[34]:

0 1 2

0 -0.204708 0.500000 0.000000

1 -0.555730 0.500000 0.000000

2 0.092908 0.500000 0.769023

3 1.246435 0.500000 -1.296221

4 0.274992 0.228913 1.352917

5 0.886429 -2.001637 -0.371843

6 1.669025 -0.438570 -0.539741

in [45]: data = pd.dataframe()

in [46]: data

out[46]:

k1 k2

0 one 1

1 two 1

2 one 2

3 two 3

4 one 3

5 two 4

6 two 4

dataframe的duplicated方法返回乙個布林型series,表示各行是否是重複行(前面出現過的行)

in [47]: data.duplicated()

out[47]:

0 false

1 false

2 false

3 false

4 false

5 false

6 true

dtype: bool

《誰說菜鳥不會資料分析》 學習筆記二 缺失資料處理

可接受的情況是缺失值在10 以下 缺失值是指資料集中某個或某些屬性的值是不完全的。缺失值產生的原因多種多樣,主要分成機械原因和人為原因。機械原因是由於資料收集或儲存失敗造成的資料缺失。比如資料儲存的失敗 儲存器損壞 機械故障導致 某段時間資料未能收集等。人為原因是由於人的主觀失誤 歷史侷限或有意隱瞞...

C 學習筆記3 處理資料

c primer plus 第6版 讀書筆記 知識點 1.oop的本質是設計並擴充套件自己的資料型別。2.變數命名規則 字母字元 數字 下劃線 第乙個字元不能是數字 區分大小寫 不能使用關鍵字 以兩個下劃線或下劃線加大寫字母打頭的名稱被保留給實現 編譯器及使用的資源 使用,以乙個下劃線開頭的名稱被保...

pandas的學習4 處理丟失資料

import pandas as pd import numpy as np 有時候我們匯入或處理資料,會產生一些空的或者是 nan 資料,如何刪除或者是填補這些 nan 資料就是我們今天所要提到的內容.建立了乙個6x4的矩陣資料並且把兩個位置置為空.dates pd.date range 2013...