
- Python Pandas 教程
- Python Pandas - 首頁
- Python Pandas - 簡介
- Python Pandas - 環境設定
- Python Pandas - 基礎
- Python Pandas - 資料結構介紹
- Python Pandas - 索引物件
- Python Pandas - Panel
- Python Pandas - 基本功能
- Python Pandas - 索引和資料選擇
- Python Pandas - Series
- Python Pandas - Series
- Python Pandas - 切片 Series 物件
- Python Pandas - Series 物件的屬性
- Python Pandas - Series 物件的算術運算
- Python Pandas - 將 Series 轉換為其他物件
- Python Pandas - DataFrame
- Python Pandas - DataFrame
- Python Pandas - 訪問 DataFrame
- Python Pandas - 切片 DataFrame 物件
- Python Pandas - 修改 DataFrame
- Python Pandas - 從 DataFrame 中刪除行
- Python Pandas - DataFrame 的算術運算
- Python Pandas - I/O 工具
- Python Pandas - I/O 工具
- Python Pandas - 使用 CSV 格式
- Python Pandas - 讀取和寫入 JSON 檔案
- Python Pandas - 從 Excel 檔案讀取資料
- Python Pandas - 將資料寫入 Excel 檔案
- Python Pandas - 使用 HTML 資料
- Python Pandas - 剪貼簿
- Python Pandas - 使用 HDF5 格式
- Python Pandas - 與 SQL 的比較
- Python Pandas - 資料處理
- Python Pandas - 排序
- Python Pandas - 重索引
- Python Pandas - 迭代
- Python Pandas - 連線
- Python Pandas - 統計函式
- Python Pandas - 描述性統計
- Python Pandas - 處理文字資料
- Python Pandas - 函式應用
- Python Pandas - 選項和自定義
- Python Pandas - 視窗函式
- Python Pandas - 聚合
- Python Pandas - 合併/連線
- Python Pandas - 多層索引
- Python Pandas - 多層索引基礎
- Python Pandas - 使用多層索引進行索引
- Python Pandas - 使用多層索引進行高階重索引
- Python Pandas - 重新命名多層索引標籤
- Python Pandas - 對多層索引進行排序
- Python Pandas - 二元運算
- Python Pandas - 二元比較運算
- Python Pandas - 布林索引
- Python Pandas - 布林掩碼
- Python Pandas - 資料重塑和透視
- Python Pandas - 透視
- Python Pandas - 堆疊和取消堆疊
- Python Pandas - 熔化
- Python Pandas - 計算虛擬變數
- Python Pandas - 分類資料
- Python Pandas - 分類資料
- Python Pandas - 分類資料的排序
- Python Pandas - 比較分類資料
- Python Pandas - 處理缺失資料
- Python Pandas - 缺失資料
- Python Pandas - 填充缺失資料
- Python Pandas - 缺失值的插值
- Python Pandas - 刪除缺失資料
- Python Pandas - 處理缺失資料
- Python Pandas - 處理重複項
- Python Pandas - 重複資料
- Python Pandas - 計數和檢索唯一元素
- Python Pandas - 重複標籤
- Python Pandas - 分組和聚合
- Python Pandas - GroupBy
- Python Pandas - 時間序列資料
- Python Pandas - 日期功能
- Python Pandas - 時間增量
- Python Pandas - 稀疏資料結構
- Python Pandas - 稀疏資料
- Python Pandas - 視覺化
- Python Pandas - 視覺化
- Python Pandas - 其他概念
- Python Pandas - 注意事項
- Python Pandas 資源
- Python Pandas - 快速指南
- Python Pandas - 資源
- Python Pandas - 討論
Python Pandas - 處理缺失資料
在處理資料時,您經常會遇到缺失值,在 Pandas 中表示為 NaN(非數字)。處理缺失值需要更多注意,因為 NaN 值會傳播到大多數算術運算中,這可能會改變結果。
Pandas 提供了靈活的方法來管理計算期間的缺失資料,允許您控制這些值如何影響您的結果。在本教程中,我們將學習 Pandas 如何在計算期間處理缺失資料,包括算術運算、描述性統計和累積運算。
帶有缺失資料的算術運算
在 Pandas 物件之間執行算術運算時,缺失值 (NaN) 預設情況下會傳播。例如,當您將兩個包含 NaN 值的 Series 相加時,結果中也會在任何一個 Series 中存在缺失值的地方出現 NaN。
示例
以下示例演示了對包含缺失值的兩個 Series 物件執行算術運算。
import pandas as pd import numpy as np # Create 2 input series objects ser1 = pd.Series([1, np.nan, np.nan, 2]) ser2 = pd.Series([2, np.nan, 1, np.nan]) # Display the series print("Input Series 1:\n",ser1) print("\nInput Series 2:\n",ser2) # Adding two series with NaN values result = ser1 + ser2 print('\nResult After adding Two series:\n',result)
以下是上述程式碼的輸出:
Input Series 1: 0 1.0 1 NaN 2 NaN 3 2.0 dtype: float64 Input Series 2: 0 2.0 1 NaN 2 1.0 3 NaN dtype: float64 Result After adding Two series: 0 3.0 1 NaN 2 NaN 3 NaN dtype: float64
處理描述性統計中的缺失資料
Pandas 庫提供了多種計算描述性統計的方法,例如求和、計算乘積或查詢累積和或乘積。這些方法旨在高效地處理缺失資料。
示例:帶有缺失值的求和
在對包含缺失值的資料求和時,會排除 NaN 值。這允許您即使在某些資料缺失的情況下也能計算有意義的總計。
以下示例使用sum()函式對 DataFrame 列執行求和運算。預設情況下,求和運算中會跳過 NaN 值。
import pandas as pd import numpy as np # Create a sample DataFrame data = {'A': [np.nan, 2, np.nan, 4], 'B': [5, 6, 7, 8]} df = pd.DataFrame(data) # Display the input DataFrame print("Input DataFrame:\n", df) # Summing a column with NaN values result = df['A'].sum() print('\nResult After Summing the values of a column:\n',result)
以下是上述程式碼的輸出:
Input DataFrame:
A | B | |
---|---|---|
0 | NaN | 5 |
1 | 2.0 | 6 |
2 | NaN | 7 |
3 | 4.0 | 8 |
示例:帶有缺失值的乘積計算
與求和類似,當計算包含缺失資料 (NaN) 的值的乘積時,將其視為 1。這確保缺失值不會改變最終乘積。
以下示例使用 pandas df.prod() 函式計算 pandas 物件的乘積。
import pandas as pd import numpy as np # Create a sample DataFrame data = {'A': [np.nan, 2, np.nan, 4], 'B': [5, 6, np.nan, np.nan]} df = pd.DataFrame(data) # Display the input DataFrame print("Input DataFrame:\n", df) # Product with NaN values result = df.prod() print('\nResult After Product the values of a DataFrame:\n',result)
以下是上述程式碼的輸出:
Input DataFrame:
A | B | |
---|---|---|
0 | NaN | 5.0 |
1 | 2.0 | 6.0 |
2 | NaN | NaN |
3 | 4.0 | NaN |
帶有缺失資料的累積運算
Pandas 提供了諸如cumsum()和cumprod()之類的累積方法來生成執行總計或乘積。預設情況下,這些方法會忽略缺失值,但在輸出中保留它們。如果要將缺失資料包含在計算中,可以將skipna引數設定為 False。
示例:帶有缺失值的累積和
以下示例演示瞭如何使用df.cumsum()方法計算包含缺失值的 DataFrame 的累積和。
import pandas as pd import numpy as np # Create a sample DataFrame data = {'A': [np.nan, 2, np.nan, 4], 'B': [5, 6, np.nan, np.nan]} df = pd.DataFrame(data) # Display the input DataFrame print("Input DataFrame:\n", df) # Calculate cumulative sum by ignoring NaN print('Cumulative sum by ignoring NaN:\n',df.cumsum())
以下是上述程式碼的輸出:
Input DataFrame:
A | B | |
---|---|---|
0 | NaN | 5.0 |
1 | 2.0 | 6.0 |
2 | NaN | NaN |
3 | 4.0 | NaN |
A | B | |
---|---|---|
0 | NaN | 5.0 |
1 | 2.0 | 11.0 |
2 | NaN | NaN |
3 | 6.0 | NaN |
從上述輸出可以看出,跳過了缺失值,併為可用值計算了累積和。
示例:在累積和中包含 NaN
此示例演示瞭如何透過將skipna=False設定在df.cumsum()方法中來包含缺失值,從而執行累積和。
import pandas as pd import numpy as np # Create a sample DataFrame data = {'A': [np.nan, 2, np.nan, 4], 'B': [5, 6, np.nan, np.nan]} df = pd.DataFrame(data) # Display the input DataFrame print("Input DataFrame:\n", df) # Calculate the cumulative sum by preserving NaN print('Cumulative sum by including NaN:\n', df.cumsum(skipna=False))
以下是上述程式碼的輸出:
Input DataFrame:
A | B | |
---|---|---|
0 | NaN | 5.0 |
1 | 2.0 | 6.0 |
2 | NaN | NaN |
3 | 4.0 | NaN |
A | B | |
---|---|---|
0 | NaN | 5.0 |
1 | NaN | 11.0 |
2 | NaN | NaN |
3 | NaN | NaN |
使用skipna=False,累積和會在遇到 NaN 值時停止,並且所有後續值也變為 NaN。