MST

星途 面试题库

面试题:Python的Pandas处理缺失数据之复杂填充

假设有一个时间序列的DataFrame,其中存在缺失值。要求使用线性插值法填充缺失值,并且在填充前先判断缺失值是否连续超过3个,如果连续超过3个,则使用前一个有效数据填充。请用Python的Pandas库实现该功能。
44.9万 热度难度
编程语言Python

知识考点

AI 面试

面试题答案

一键面试
import pandas as pd

def fill_missing_values(df):
    # 按列处理
    for col in df.columns:
        missing_count = 0
        for i in range(len(df[col])):
            if pd.isnull(df[col][i]):
                missing_count += 1
                if missing_count > 3:
                    df[col][i] = df[col][i - 1]
            else:
                missing_count = 0
    # 线性插值
    df = df.interpolate(method='linear')
    return df

假设你的DataFrame为data,可以这样调用函数:

data = pd.DataFrame(...) # 这里是你的DataFrame数据
filled_data = fill_missing_values(data)