[TOC]
*****
pandas使用numpy.nan來代表缺失值。缺失值不代表沒有值,它本身就是某種類型的值。PYTHON中一般用None代表沒有值,這與nan是兩回事。缺失值不會被程序計算。處理的方式:
1. 刪除含有缺失值的行
2. 填充缺失值

### 1.4.1. 檢測缺失值,返回布爾值
有幾種方式檢測數據值是否為空或缺失
```
pd.isnull(a)
```





判斷數據框中的每個數據是否為空

### 1.4.2. 刪除與填充
對于missing value可以刪除行或填充缺失值
```
#根據二維數組構建dataFrame,用list('ABCD')構建四個列
df_test = pd.DataFrame([[np.nan, 2, np.nan, 0], [3, 4, np.nan, 1],
[np.nan, np.nan, np.nan, 5]],
columns=list('ABCD'))
```

```
axis=0按行刪除,行里有nan類型數據就刪除整行
df_test.dropna(axis = 0)
```

任意一列有nan值,刪除整列

#如果某列上的值全是nan,則刪除該列
df_test.dropna(axis = 1,how = "all")

#按行刪除,每行與b列相交的數據值為nan,則刪除該行
df_test.dropna(axis = 0,subset=['B'])
**填充缺失值**
df.fillna(value=None, method=None, axis=None, inplace=False, limit=None, downcast=None, **kwargs)

* backfill:根據后面的值填充缺失值
* bfill根據前面的值填充缺失值
現在有例子:

a.fillna(value=10)

*****
用后面的值填充 backfill/bfill

*****
用前面一個最近的有效值填充 pad/ffill

*****
將birth_city和birth_state兩列的缺失值替換為other和something
df.fillna({"birth_city":"other","birth_state":"something"})

### 1.4.3. Missing value的計算

**注意**
nan之間不能比較
*****
a是series,nan+3仍然是nan

nan不參與任何數學計算,求和 求平均數都不參與

- 第五節 Pandas數據管理
- 1.1 文件讀取
- 1.2 DataFrame 與 Series
- 1.3 常用操作
- 1.4 Missing value
- 1.5 文本數據
- 1.6 分類數據
- 第六節 pandas數據分析
- 2.1 索引選取
- 2.2. 分組計算
- 2.3. 表聯結
- 2.4. 數據透視與重塑(pivot table and reshape)
- 2.5 官方小結圖片
- 第七節 NUMPY科學計算
- 第八節 python可視化
- 第九節 統計學
- 01 單變量
- 02 雙變量
- 03 數值方法
- 第十節 概率
- 01 概率
- 02 離散概率分布
- 03 連續概率分布
- 第一節 抽樣與抽樣分布
- 01抽樣
- 02 點估計
- 03 抽樣分布
- 04 抽樣分布的性質
- 第十三節 區間估計
- 01總體均值的區間估計:??已知
- 02總體均值的區間估計:??未知
- 03總體容量的確定
- 04 總體比率