canyon289 canyon289 - 8 months ago 38
Python Question

What does _constructor do in DataFrame class

I'm trying to learn what's under the hood in the pandas library and I am curious about a specific piece of code in the DataFrame class. The following code appears in the class module.

def _constructor(self):
return DataFrame

_constructor_sliced = Series

Looking at the _constuctor method. What does it do? It seems all it does is return a DataFrame but I don't really understand the significance. Additionally the next line _constructor_sliced I also don't understand.

What is the function of these lines of code?


_constructor(self) is a private member function that returns an empty DataFrame object. This is useful when the result of an operation creates a new DataFrame object.

For example, the dot() member function that does matrix multiplication with another DataFrame object and returns a new DataFrame calls _constructor in order to create a new instance of a DataFrame object in order to return it as the result of the dot operation.

def dot(self, other):
    Matrix multiplication with DataFrame or Series objects

    other : DataFrame or Series

    dot_product : DataFrame or Series

    if isinstance(other, DataFrame):
        return self._constructor(, rvals),

The new instance is constructed with the dot product of the elements in self and the other argument in a numpy array.

Similarly for the _constructor_sliced private member.

_constructor_sliced = Series

This object is used when the result of the operation is a new Series object rather than a new DataFrame object.