私は、100年の日付をインデックスとして(つまり〜36500列)100年の日付をインデックス(つまり〜36500行)として持つ非常に大きなデータフレームを持っています。私は36500^2回実行する必要があるデータフレームの各要素の値を計算する関数を持っています。非常に大きなデータフレームを値で高速に取り込む方法
問題は、かなり高速な機能ではなく、データフレームへの値の割り当てです。このように定数を代入しても、6つの代入ごとに約1秒かかります。もちろん、私はあなたが言うことができるようにかなり厚いです:C/Javaで通常
for i, row in df_mBase.iterrows():
for idx, val in enumerate(row):
df_mBase.ix[i][idx] = 1
print(i)
私は単に36500x36500重ループをループし、インデックスを経由して直接事前に割り当てられたメモリにアクセスほとんどで、一定時間内に達成することはできないでしょうオーバーヘッド。しかし、これはpythonのオプションではないようです?
このデータをデータフレームに格納する最も速い方法は何でしょうか? Pythonianかどうか、私はスピードの後でしかない - 私は優雅さを気にしない。
僅差として
df.iteritems()
で列を反復処理して、最速の作品df[column][index] = x
、ベクトル化することができない場合データ? CSV? –何が欲しいですか?すべて1のデータフレーム? –