fillna()
函數通常用于填充缺失值,例如 NaN(Not a Number)或 None
首先,導入所需庫并創建一個包含缺失值的 DataFrame:
import pandas as pd
import numpy as np
data = {'A': [1, 2, np.nan],
'B': [4, np.nan, 6],
'C': [7, 8, 9]}
df = pd.DataFrame(data)
print("原始 DataFrame:")
print(df)
這將輸出以下 DataFrame:
原始 DataFrame:
A B C
0 1.0 4.0 7
1 2.0 NaN 8
2 NaN 6.0 9
現在,我們將使用 fillna()
函數處理特定類型的缺失值。在這個例子中,我們將用 0 替換所有類型為 float
的缺失值(NaN):
# 使用 fillna() 函數處理特定類型的缺失值
filled_df = df.fillna(0, inplace=False)
print("填充后的 DataFrame:")
print(filled_df)
這將輸出以下 DataFrame:
填充后的 DataFrame:
A B C
0 1.0 4.0 7
1 2.0 0.0 8
2 0.0 6.0 9
注意,inplace=False
表示我們不會直接修改原始 DataFrame,而是返回一個新的 DataFrame。如果你希望直接修改原始 DataFrame,可以將 inplace
參數設置為 True
。
如果你想要基于特定條件填充缺失值,可以使用 fillna()
函數的 method
參數。例如,你可以使用前一個有效值(ffill
)或后一個有效值(bfill
)來填充缺失值:
# 使用前一個有效值填充缺失值
filled_df_ffill = df.fillna(method='ffill', inplace=False)
print("使用前一個有效值填充后的 DataFrame:")
print(filled_df_ffill)
# 使用后一個有效值填充缺失值
filled_df_bfill = df.fillna(method='bfill', inplace=False)
print("使用后一個有效值填充后的 DataFrame:")
print(filled_df_bfill)
這將分別輸出以下 DataFrames:
使用前一個有效值填充后的 DataFrame:
A B C
0 1.0 4.0 7
1 2.0 4.0 8
2 2.0 6.0 9
使用后一個有效值填充后的 DataFrame:
A B C
0 1.0 4.0 7
1 2.0 6.0 8
2 1.0 6.0 9