2013-03-21 119 views
3

我的目標是將EURUSD data(每日)讀入時間序列對象,我可以根據不規則時間輕鬆地對信息進行切片,聚合和重新採樣幀。這很可能是一個簡單的答案。我正在使用Python進行數據分析,但似乎無法彌補差距。從csv文件中讀取數據並轉換爲熊貓的時間序列

在下載和解壓data後,我運行下面的代碼:

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

到目前爲止好。我現在有一個很好的數據框,時間戳作爲索引。

然而,這本書暗示(第295頁),我應該能夠子集數據,如下,看所有的數據從2001年的

>>> df['2001'] 

但是,那並不是」工作。

閱讀本question and answer告訴我,我可以導入時間戳:

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

這似乎是某一天的工作:

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

然而,下面的代碼得到我想要的一個值範圍從2001年的所有數據。

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

我知道我失蹤一些簡單的,基本的東西。誰能幫忙?

謝謝你,布萊恩

回答

4

對皮克的例子。 295正在Series對象上執行,這就是爲什麼索引與年份工作。使用DataFrame,您會希望df.ix['2001']達到相同的結果。

+0

謝謝你!您的答案奇妙地適用於數據框架。我如何將數據導入到Series對象中? – Brian 2013-03-21 15:12:03

+0

一個系列是一個簡單的一維數組對象。它有一個與每個索引相關的索引和值。 DataFrame由多個Series對象組成(每列都是一個Series)。因此,要從DataFrame獲取一個Series,您可以選擇任何單獨的列,如'df [「Column Name」]「,結果將會是一個序列。或者按索引訪問該列中的值,請嘗試使用'df [「Column Name」] ['2001']'。 – bdiamante 2013-03-21 15:22:07

+0

謝謝,先生。我知道我錯過了**基本的**,並且你釘了它。我無法告訴你,我非常感謝你的簡潔明瞭的解釋。 – Brian 2013-03-21 15:29:06

0

如果你想獲得所有的列,然後df.ix['2001']

如果你有興趣只在「關閉」,因爲你已經做了s = df['<CLOSE>'],就可以得到2001個值由s['2001']