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構築する主な利点の 1 つは、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 に答える