_constructor在DataFrame类中做了什么

时间:2016-05-29 03:09:48

标签: python pandas

我试图了解pandas库中的内容,我对DataFrame类中的特定代码感到好奇。以下代码出现在类模块中。

@property
def _constructor(self):
    return DataFrame

_constructor_sliced = Series

查看_constuctor方法。它有什么作用?它似乎只是返回一个DataFrame但我并不真正理解其重要性。另外,下一行_constructor_sliced我也不明白。

这些代码行的功能是什么?

https://github.com/pydata/pandas/blob/master/pandas/core/frame.py#L199

1 个答案:

答案 0 :(得分:2)

_constructor(self)是一个私有成员函数,它返回一个空的DataFrame对象。当操作的结果创建新的DataFrame对象时,这很有用。

例如,dot()成员函数与另一个DataFrame对象进行矩阵乘法,并返回一个新的DataFrame调用_constructor,以便创建一个新的实例DataFrame对象,以便作为点操作的结果返回它。

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

    Parameters
    ----------
    other : DataFrame or Series

    Returns
    -------
    dot_product : DataFrame or Series
    """
...

    if isinstance(other, DataFrame):
        return self._constructor(np.dot(lvals, rvals),
                                 index=left.index,
                                 columns=other.columns)

新实例是使用self中元素的点积和numpy数组中的另一个参数构建的。

同样适用于_constructor_sliced私人会员。

_constructor_sliced = Series

当操作的结果是新的Series对象而不是新的DataFrame对象时,将使用此对象。