溫馨提示×

如何用fillna函數(shù)處理特定類型的缺失值

小樊
89
2024-08-29 14:02:26
欄目: 編程語言

fillna() 函數(shù)通常用于填充缺失值,例如 NaN(Not a Number)或 None

首先,導(dǎo)入所需庫并創(chuàng)建一個(gè)包含缺失值的 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

現(xiàn)在,我們將使用 fillna() 函數(shù)處理特定類型的缺失值。在這個(gè)例子中,我們將用 0 替換所有類型為 float 的缺失值(NaN):

# 使用 fillna() 函數(shù)處理特定類型的缺失值
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,而是返回一個(gè)新的 DataFrame。如果你希望直接修改原始 DataFrame,可以將 inplace 參數(shù)設(shè)置為 True。

如果你想要基于特定條件填充缺失值,可以使用 fillna() 函數(shù)的 method 參數(shù)。例如,你可以使用前一個(gè)有效值(ffill)或后一個(gè)有效值(bfill)來填充缺失值:

# 使用前一個(gè)有效值填充缺失值
filled_df_ffill = df.fillna(method='ffill', inplace=False)
print("使用前一個(gè)有效值填充后的 DataFrame:")
print(filled_df_ffill)

# 使用后一個(gè)有效值填充缺失值
filled_df_bfill = df.fillna(method='bfill', inplace=False)
print("使用后一個(gè)有效值填充后的 DataFrame:")
print(filled_df_bfill)

這將分別輸出以下 DataFrames:

使用前一個(gè)有效值填充后的 DataFrame:
     A    B  C
0  1.0  4.0  7
1  2.0  4.0  8
2  2.0  6.0  9

使用后一個(gè)有效值填充后的 DataFrame:
     A    B  C
0  1.0  4.0  7
1  2.0  6.0  8
2  1.0  6.0  9

0