2017-09-28 5 views
0

を生成する:メモリエラー示す連結する大パンダのデータフレームIが複数列にパンダのデータフレーム列を分割するために、次のコードを使用しているMemoryError

df = pd.concat([df.X.apply(pd.Series).rename(columns="X{}".format), df.Y], axis=1)

その:

stacked = np.empty(shape, dtype=dtype) MemoryError

+0

データフレームの大きさはどれくらいですか?各連鎖操作では、メモリにコピーが作成されます。 –

答えて

1

apply(pd.Series)とすることができます低速で高価なので、私はtolistDataFrameコンストラクタコールを使用してより効率的な何かをお勧めしたいと思います。また、の名前を変更して列をにするだけで、データフレームの新しいコピーを不必要に作成する必要がなくなります。さらに別のコピーはさらに高速でなければなりませんを返しpd.concatとは対照的に、場所の割り当てで

y = df['Y'] 
df = pd.DataFrame(df.X.tolist(), index=df.index) 
df.columns = list(map("X{}".format, df.columns)) 
df['Y'] = y 

関連する問題