tee*_*pee 6 python oop class dataframe pandas
我的目标是创建一个行为与 Pandas DataFrame 相同的对象,但在它之上有一些我自己的额外方法。据我了解,一种方法是扩展类,我首先尝试按如下方式进行:
class CustomDF(pd.DataFrame):
def __init__(self, filename):
self = pd.read_csv(filename)
Run Code Online (Sandbox Code Playgroud)
但是在尝试查看此对象时出现错误,说:'CustomDF' object has no attribute '_data'.
我的第二次迭代不是继承对象,而是将其作为 DataFrame 导入对象属性之一,并让方法解决它,如下所示:
class CustomDF():
def __init__(self, filename):
self.df = pd.read_csv(filename)
def custom_method_1(self,a,b,...):
...
def custom_method_2(self,a,b,...):
...
Run Code Online (Sandbox Code Playgroud)
这很好,除了对于所有自定义方法,我需要首先访问该self.df属性才能对其进行任何操作,但我更希望我的自定义数据框只是self.
有没有办法做到这一点?还是这种方法并不理想?
该__init__方法在第一个示例中被覆盖。
使用super然后添加您的自定义代码
class CustomDF(pd.DataFrame):
def __init__(self, *args, **kw):
super(CustomDF, self).__init__(*args, **kw)
# Your code here
def custom_method_1(self,a,b,...):
...Run Code Online (Sandbox Code Playgroud)