google colaboratoryの環境下で2つのデーターフレームをマージさせていますが、
あまりにも処理が遅くて困っております。
1600くらいなら気にならない速さなのですが、
一つのカラムをマージさせるのに36万行だと1時間ほどかかっています。
これだと大量のカラムをマージさせるの時間がかかってしまいますので、
知恵を貸していただきたく質問投稿しました。
【元となるデーターフレーム】
・36万行ほど。
・インデックスは日付。
【マージさせるデーターフレーム】
・インデックスは日付。
・元となるデーターフレームとは要素のインデックス数が少ない。
自分が考えたコードは以下になります。
Python
1#データーフレームの数 2N = len(df) 3N1 = len(df1) 4 5#空のNumpty配列を準備。 6r = np.arange(N).reshape((-1,1)) 7df['カラム'] = np.arange(N).reshape((-1,1)) 8#データがない箇所はNaN。 9df['カラム] = 'NaN' 10 11for i in range(0,N1): 12 mon = df1.index[i].month 13 day = df1.index[i].day 14 hor = df1.index[i].hour 15 minut = df1.index[i].minute 16 kalum = df1['カラム'][i] 17 for i1 in range(0,N): 18 if df.index[i1].month >= mon and df.index[i1].day >= day and 19 df.index[i1].hour >= hor and df.index[i1].minute: 20 df['カラム'][i1:N] = kalum
このコードだと1時間ほどかかり、
スタートする日付(変化)から最後の行まで代入というのを繰り返しているので、
2度手間で処理が遅いのかなと思っております。
もっとスマートで計算処理が早い方法がありましたら、
ご教授よろしくお願い致します。
回答1件
あなたの回答
tips
プレビュー