【发布时间】:2017-03-31 20:57:21
【问题描述】:
一些 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')
【问题讨论】:
-
你能具体说明你想要什么吗?据我了解,听起来您需要对
fillna方法进行猴子修补,或修改源代码,因为method参数不接受任意函数。 -
@juanpa.arrivillaga 是的,我认为正确的方法是修改源代码。好吧,例如我想要一个函数,它可以用系列中最接近的值的平均值来填补空白。我的意思是这样的:1 NaN 3 --> 1 2 3。
-
是否有某些原因必须能够将它与
fillna方法一起使用?编写自己的函数并保留源代码可能会更好。 -
@juanpa.arrivillaga 不是真的。但我认为可以将它与所有其他方法一起使用......比如重新索引等。你为什么这么认为?据我所知,当您想要定义一些自定义操作时,修改源代码是一种常见的做法。
-
在不了解所有后果的情况下更改复杂库的代码通常不是一个好主意。当然你可以尝试,但可能是作为最后的手段,或者当你想真正开始为 pandas 做出贡献时。