私のデータがどのように見える(データ型はパンダDATAFRAMEです):インデックスをすべてリサンプリングして最も近い秒に丸める方法は?
price =
time bid
03:03:34.797000 116.02
03:03:34.797000 116.02
03:03:54.152000 116.02
03:03:54.169000 116.02
03:03:54.169000 116.02
03:07:36.899000 116.24
03:07:48.760000 116.24
03:07:48.760000 116.24
03:07:48.761000 116.24
私は2番目のレベルのデータにデータをリサンプリングし、元の時間を超えない以前の最も近い秒にすべてのデータを合わせてみました。
03:04:00 116.02
03:05:00 NaN
03:06:00 NaN
03:07:00 NaN
03:08:00 116.24
と私が得たしかし
price.resample('Min').last()
を使用:私は結果があることを期待しています。
03:03:34.797000 116.02
03:04:34.797000 NaN
03:05:34.797000 NaN
03:06:34.797000 NaN
03:07:34.797000 116.24
アラインメント以外はすべてうまく行きます。誰も私が問題を解決するのを助けることができますか?ありがとう。
df.groupby(df.index.floor('Min')).last().resample('Min').asfreq()
のは、(0.21.0+パンダを必要とする)スピードを試してみましょう:
df.set_axis(df.index.floor('Min'), axis=0, inplace=False)\
.drop_duplicates().resample('Min').asfreq()
出力:あなたはfloor
を使用する必要が
ありがとうございました。しかし、グループバイは遅くなる可能性がありますか?私は約500Mの行のためにこれを実行する必要があります、これを行うための迅速な方法はありますか? – MTANG
@MTANG groupbyを使用しない別のソリューションを追加しました。この小さなデータセットで速度の向上が見られます。 –
ありがとうございました。 – MTANG