0

有人可以帮我解决熊猫问题吗?我有一个时间序列数据框,例如:

                       GOOG     AAPL
2010-12-09 16:00:00    591.50   551
2010-12-10 16:00:00    592.21   523
2010-12-13 16:00:00    594.62   578
2010-12-14 16:00:00    594.91   567
2010-12-15 16:00:00    590.30   577
...

我需要遍历每个时间戳并测试 AAPL 是否 > 570。如果是,那么我想为该条目打印 AAPL 的日期和价格。这可能吗?

4

2 回答 2

3

不需要任何循环,pandas构建的主要好处之一numpy是它可以轻松地在整个列上操作。它很简单:

df['AAPL'][df['AAPL'] > 570]

输出:

2010-12-13  16:00:00    578
2010-12-15  16:00:00    577
Name: AAPL, dtype: int64
于 2013-10-13T23:15:20.907 回答
1

啊哈哈我明白了:

因为它是建立在 numpy 之上的,所以你可以做的是:

my_dataframe[my_dataframe.AAPL > 570]

你几乎完成了。从这里你有所有对应于 AAPL > 570 的行,现在它只是打印出你需要的值:

valid_rows = my_dataframe[my_dataframe.AAPL > 570]
for row in valid_rows.to_records():
    print row[1],row[2]

dataframe.where 可用于搜索整个帧。我忘记了 pandas 使引用列变得非常容易。

于 2013-10-13T23:03:53.733 回答