2016-05-29 6 views
2

私はpandasライブラリのフードの内容を習得しようとしており、DataFrameクラスの特定のコードについて興味があります。次のコードがクラスモジュールに表示されます。DataFrameクラスの_constructorは何ですか

@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

答えて

2

_constructor(self)DataFrame空のオブジェクトを返すプライベートメンバ関数です。これは、操作の結果が新しいDataFrameオブジェクトを作成する場合に便利です。例えば

、別のDataFrameオブジェクトとの行列乗算を行い、ドット演算の結果としてそれを戻すためにDataFrameオブジェクトの新しいインスタンスを作成するために新しいDataFrameコール_constructorを返すdot()メンバ関数。

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オブジェクトである場合、このオブジェクトが使用されます。

関連する問題