gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 12:03:18 24 4
gpt4 key购买 nike

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

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

方法参数可以取以下值:{None, ‘backfill’/’bfill’, ‘pad’/’ffill’, ‘nearest’}

但是我想def某种填充函数,它反过来定义如何使用系列中已经存在的值来填充空白,这样它可以通过以下方式使用:

df = DataFrame.fillna(method='new_method')

最佳答案

在您非常具体的情况下(最近值的平均值),您可以这样做:

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)

关于python - 如何在 Pandas (python)中定义自己的填充方法参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40652830/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com