2016-12-28 17 views
1

私は500行のPandasデータフレームを維持する必要があり、次の行が利用可能になると、その新しい行をプッシュし、データフレームから最も古い行をスローしたいと思います。例えばたとえば、行0を最新の状態に維持し、行500を最も古い状態に維持しているとします。新しいデータを取得すると、データを行0にプッシュし、行0を行1にシフトし、行499を行500にプッシュするまで続けます(行500は削除されます)。PythonでPandasデータフレームの行のFIFOプッシュ操作を行う方法は?

このようなFIFO操作をPandasで行う方法はありますか?みんなありがとう!

+2

1.あなたはFIFOからデータを読み込むことを意味しますか? 2.データフレームをキューとして使用することは、シナリオで行を挿入/削除するためにO(N)時間がかかるため、非常に非効率的です。ちょうどキューを使用してください。 –

+4

あなたは 'df.shift(1)できます。 df.loc [0] = new_row'。それは遅いthoになるでしょう。 – Zero

+0

@JohnGalt、はいサー!それはまさに私が探していたものです。どうもありがとう。 – rrlamichhane

答えて

1

@JohnGaltはこれにコメントを投稿しました。どうもありがとう。私はちょうど人々が将来同様の情報を探している場合のために、ここに答えを入れたいと思っていました。

df.shift(1) df.loc[0] = new_row

df.shift(n)は 'NA' と最後のn行を取り払うことで最初のn行を埋め、行をn回シフトします。 dfの行数はdf.shiftで変更されません。

私はこれが役に立ちそうです。

関連する問題