创建一个基于 Pandas.DataFrame 的类,使用 pandas.read_csv() 函数进行初始化

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.

有没有办法做到这一点?还是这种方法并不理想?

Kam*_*ski 1

__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)