所以,我真的想在pandas.core.frame.DataFrame
添加一些新方法。例如,我想要一个名为.idx
的方法:
pandas.core.frame.DataFrame.idx(self, rows, cols):
return self.iloc[rows].loc[cols]
这可能吗?我不确定语法应该是什么 - 类已经存在于库中,因此我不能将该函数放在类定义中。
答案 0 :(得分:2)
你能不能扩展你的DataFrame
,继承它的所有功能,然后自由地定义你自己的功能?
在python中它看起来像:
class ExtendedDataFrame(DataFrame):
...
然后,只需使用ExtendedDataFrame
的实例,而不是DataFrame
,以获得额外的好处。
我还建议您查看this tutorial covering inheritance.
如果您试图覆盖超级(父级)类的功能,请务必查看您的super()
的python实现版本。
Here是一个SO问题,其中包含有关super()
的详细信息,因为我注意到我仅仅简要介绍了super()
所涵盖的教程,并且在评论中也是如此。< / p>
答案 1 :(得分:1)
这在Python中实际上非常简单。虽然我建议继承DataFrame,但正如MeetTitan所回答的那样,有时候这会无效,但你可以添加如下函数:
class Abc(object):
pass
def new_funct(self):
print 1234
Abc.instance_funct = new_funct
a = Abc()
a.instance_funct()