2017-04-12 15 views
0

私はquantopianを使用しようとしています。それは私の地獄をイライラしています。パンダでは、タイムスタンプインデックスから行を取得する方法は?

私はこれを持っている:私は最小値の行を取得しようとしています

spy_5min.head(5) 
           SPY 
2005-01-03 09:30:00-05:00 95.507 
2005-01-03 09:35:00-05:00 95.531 
2005-01-03 09:40:00-05:00 95.625 
2005-01-03 09:45:00-05:00 95.547 
2005-01-03 09:50:00-05:00 95.586 

import pandas as pd 
import numpy as np 
spy_minute_opens = get_pricing(
    'SPY', fields='open_price', 
    start_date='2005-01-01', end_date = '2017-04-01', 
    frequency='minute') 
spy_minute_opens.index.tz = 'US/Eastern' 
spy_minute_opens = spy_minute_opens.to_frame() 
spy_5min = spy_minute_opens.groupby(pd.TimeGrouper('5T')).agg(['first']) 
spy_5min.columns = ['SPY'] 

これは、次の生成します。私はkeyErrorを取得しています。

spy_5min.idxmin() 

SPY 2009-03-06 15:10:00-05:00 
dtype: datetime64[ns, US/Eastern] 

spy_5min[spy_5min.idxmin()] 

KeyError: "['2009-03-06T20:10:00.000000000'] not in index" 

何かヘルプ?!?!

+1

は '.LOC []'インデクサーを使用してみてください: 'spy_5min.locを[spy_5min.idxmin()]' – MaxU

答えて

2

かわりSPYカラムにそれを呼び出す代わりに、指標値の系列をバック与えるデータフレームにidxminを呼び出す:@MaxUを持つ行を抽出するlocを使用して、コメントとも

spy_5min.idxmin() 
#SPY 2005-01-03 09:30:00-05:00 
#dtype: object 

spy_5min.SPY.idxmin() 
#'2005-01-03 09:30:00-05:00' 

特定のインデックス:

spy_5min.loc[spy_5min.SPY.idxmin()] 
#SPY 95.507 
#Name: 2005-01-03 09:30:00-05:00, dtype: float64 
+0

WHY '?!?!?!なぜ、なぜ、なぜ、なぜ、何のために?!?!??! UGH !!!なぜ私は 'loc'を使わなければならないのですか?ダムニット私はパンダが嫌い。 – lukehawk

+0

'loc'を使わないと、データフレームに存在しないカラム名として解釈され、キーエラーです。 – Psidom

+1

RはBETTAH !!!です...ごめんなさい...。ご協力ありがとうございました。 – lukehawk

関連する問題