如何在pandas (python)中定义自己的填充方法参数?

2024-10-02 10:20:18 发布

您现在位置:Python中文网/ 问答频道 /正文

有些DataFrame和Series方法有method参数。例如:

DataFrame.fillna(value=None, method=None, axis=None, inplace=False, limit=None, downcast=None, **kwargs)

方法参数可以采用以下值:{None,'filly'/'bfill','pad'/'ffill','nearest'}

不过,我想def某种填充函数,它反过来定义如何使用序列中已经存在的值来填补空白,以便可以按以下方式使用:

^{pr2}$

Tags: 方法nonefalsedataframe参数valuemethodkwargs
1条回答
网友
1楼 · 发布于 2024-10-02 10:20:18

在您的非常具体的案例中(最近值的平均值),您可以这样做:

import pandas as pd
import numpy as np

col1 = np.array([0, 1, np.nan, 4])
col2 = np.array([0, np.nan, 2, 5])

df = pd.DataFrame({"col1" : col1, "col2" : col2})

# Trick: average forward and backward fill
df = 0.5 * (df.fillna(method="bfill") + df.fillna(method="ffill"))

通过计算前后填充的平均值,您将获得平均值,同时保持所有其他值(除了舍入误差)不变。当然,第一排和最后一排都不行。(但如果可以接受,您可以再次使用ffill和bfill)

相关问题 更多 >

    热门问题