我正在为Pandas数据帧编写一个定制的访问器类——我遵循了这里的示例并取得了积极的成果。不过,我有一个函数,我想传递额外的参数。你知道吗
我在访问器类中创建了此函数:
@property
def accessor_function(self, time_window=0.5):
def group_function(df, time):
fl = df.loc[df.Type_num==0]
id = fl.Time.idxmin()
threshold = df.loc[id, 'column'] + time
return fl.loc[fl.Time<threshold]
self.Subset = self._obj.groupby(by['col_1','col_2']).apply(group_function, time_window)
self.Subset.reset_index(drop=True, inplace=True)
return self.Subset
如果我这样称呼它,它使用time_window=0.5
:
df.accessor.accessor_function
但是,如果要为关键字参数传递不同的值:
df.accessor.accessor_function(time_window = 1)
我得到一个错误:
TypeError: 'DataFrame' object is not callable
我找不到任何明显的文档来解释向自定义访问器传递args
或kwargs
。所以我不确定我的尝试是否可行。但最好能理解如何向前发展。你知道吗
本
我相信这与您正在使用
porperty
装饰器这一事实有关,而实际上您有一个方法。如果您删除它,它应该可以正常工作,请参见下面的示例:默认情况是:
您可以使用自定义的
time_window
或者使用
*arg
或**kwargs
传递该参数:相关问题 更多 >
编程相关推荐