4

パンダのデータフレームを使用して、取引日にライブでダウンロードする市場データを追跡したいと考えています。

AAPL と GOOG の価格を記録したいとしましょう。まず、データフレームを作成します。

prices = DataFrame(columns = ['AAPL', 'GOOG']) 

最初のデータポイントが時間 t1 に到着し、AAPL の価格が 555.0 であるとします。そして数秒後の t2 で、GOOG の価格が 430.0 になります。

もちろんできません:

prices['AAPL'][t1] = 555.0
prices['GOOG'][t2] = 430.0

パンダでこれを達成するための簡単で速い方法はありますか?

4

1 に答える 1

3

メソッドを確認してくださいset_value(サイズが変更されている場合は、新しいオブジェクトへの参照を返します)。ただし、(ネストされた dict と比較して) 高速であるとは思わないでください。

In [7]: prices
Out[7]: 
Empty DataFrame
Columns: array([AAPL, GOOG], dtype=object)
Index: array([], dtype=object)

In [8]: prices = prices.set_value(t1, 'AAPL', 5)

In [9]: prices
Out[9]: 
                            AAPL  GOOG
2012-04-12 18:02:28.178331     5   NaN

最後にデータを貼り付けることで DataFrame のサイズをより効率的に変更するためのメソッドをある時点で追加するとよいでしょう (NumPy にはこのための機能があります)。

于 2012-04-12T22:04:48.310 に答える