0
DataFrameに列を追加して新しいDataFrameを生成するのに、データ全体をコピーするのではなく、最も効率的な方法は何ですか? pandas.DataFrame.assignの実装を見てみる:pd.DataFrame.assign(x = series)ディープコピーなし
class DataFrame()
def assign(self, **kwargs):
data = self.copy() # deep=True is the default!
...
私はパンダを使用する生産システムに取り組んでいると私はメモリ使用を最小限に抑えたい(主にmemmapped ndarraysが付いていますが、私たちのデータフレームが〜500MBを実行します) 。上記はメモリ(AND時間)が非常に遅く見えます。 〜上記のように10個のディープコピーは、不必要にすべてのデータをRAMに持ち込み、スワッピングにつながります。一般的に、500Mb以上の小さなインデックスは必要ありませんが、このようなコピーは私たちのサーバーを殺します。ここで
"_yield a new DataFrame_"とは、以前のDataFrameを持つ新しいものを除くすべての列に対して、DataFrame共有メモリを持っているということですか? – miradulo
はい - 私は、データフレームオブジェクトに割り当てられた列と、元の列への参照を持たせたいだけです。 – user48956