4

我想使用 pandas 数据框来跟踪我将在交易日实时下载的一些市场数据。

假设我想记录 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

除了拉索引、修改索引、重新索引数据框然后插入每个标量价格之外,pandas 中是否有一种简单/快速的方法来完成此操作?

4

1 回答 1

3

检查set_value方法(如果大小发生突变,则返回对新对象的引用)。但不要指望它很快(与嵌套字典相比):

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 回答