3

私の目標は、EURUSDデータ(毎日)を時系列オブジェクトに読み込み、不規則な時間枠に基づいて情報を簡単にスライスアンドダイス、集計、およびリサンプリングできるようにすることです。これはおそらく簡単な答えです。私はデータ分析のためにPythonを使用していますが、ギャップを埋めることができないようです。

データをダウンロードして解凍した後、次のコードを実行します。

>>> import pandas as pd
>>> df = pd.read_csv('EURUSD_day.csv', parse_dates = {'Timestamp' : ['<DATE>', '<TIME>']}, index_col = 'Timestamp')

ここまでは順調ですね。これで、タイムスタンプをインデックスとして使用した素晴らしいデータフレームができました。

ただし、この本は、2001年のすべてのデータを調べるために、次のようにデータをサブセット化できるはずであることを示唆しています(p.295)。

>>> df['2001']

しかし、それはうまくいきません。

この質問と回答を読むと、タイムスタンプをインポートできることがわかります。

>>> from pandas.lib import Timestamp
>>> s = df['<CLOSE>']

これは特定の日に機能するようです:

>>> s[Timestamp('2001-01-04)]
0.9506999999

それでも、次のコードは、2001年からのすべてのデータの私の希望する範囲に対して単一の値を生成します。

>>> s[Timestamp('2001')]
0.8959

シンプルなもの、基本的なものが欠けていることはわかっています。誰か助けてもらえますか?

ありがとう、ブライアン

4

2 に答える 2

4

ページの例。295 が Series オブジェクトで実行されているため、年によるインデックス作成が機能します。DataFrame をdf.ix['2001']使用すると、同じ結果を得ることができます。

于 2013-03-21T15:08:53.570 に答える
0

すべての列を取得する場合は、df.ix['2001'].

"CLOSE" だけに興味がある場合はs = df['<CLOSE>']、すでに行っているため、2001 年の値を次のように取得できます。s['2001']

于 2013-03-21T15:23:25.760 に答える