fillna函數(shù)在Python數(shù)據(jù)分析中的應(yīng)用場景

小樊
83
2024-08-29 13:58:40
欄目: 編程語言

fillna() 函數(shù)在 Python 數(shù)據(jù)分析中主要用于處理缺失值(NaN 或 None)

  1. 填充缺失值:當(dāng)數(shù)據(jù)集中存在缺失值時(shí),可以使用 fillna() 函數(shù)將這些缺失值替換為特定的值或者基于其他值計(jì)算出的值。例如,可以用0、平均值、眾數(shù)或中位數(shù)等填充缺失值。
import pandas as pd

# 創(chuàng)建一個(gè)包含缺失值的 DataFrame
data = {'A': [1, 2, None, 4], 'B': [None, 6, 7, 8]}
df = pd.DataFrame(data)

# 使用 fillna() 函數(shù)填充缺失值
filled_df = df.fillna(0)  # 將缺失值替換為 0
  1. 填充前向值或后向值:在時(shí)間序列數(shù)據(jù)中,可以使用 fillna() 函數(shù)填充缺失值,方法是使用前一個(gè)有效值(前向填充)或后一個(gè)有效值(后向填充)。
import pandas as pd

# 創(chuàng)建一個(gè)包含缺失值的時(shí)間序列數(shù)據(jù)
data = {'date': pd.date_range('2021-01-01', periods=5), 'value': [1, 2, None, 4, None]}
ts = pd.DataFrame(data).set_index('date')

# 使用 fillna() 函數(shù)進(jìn)行前向填充和后向填充
ffilled_ts = ts.fillna(method='ffill')  # 前向填充
bfilled_ts = ts.fillna(method='bfill')  # 后向填充
  1. 根據(jù)條件填充:可以使用 fillna() 函數(shù)結(jié)合條件邏輯來填充缺失值。例如,可以根據(jù)某列的值來決定使用哪個(gè)值填充缺失值。
import pandas as pd

# 創(chuàng)建一個(gè)包含缺失值的 DataFrame
data = {'A': [1, 2, None, 4], 'B': [None, 6, 7, 8], 'C': [10, 20, 30, 40]}
df = pd.DataFrame(data)

# 使用 fillna() 函數(shù)根據(jù)條件填充缺失值
filled_df = df.fillna(df['C'] / 10)  # 將缺失值替換為 C 列對(duì)應(yīng)值除以 10

總之,fillna() 函數(shù)在 Python 數(shù)據(jù)分析中具有廣泛的應(yīng)用場景,可以幫助處理缺失值,從而提高數(shù)據(jù)質(zhì)量和分析效果。

0