2016-08-01 16 views
1

pandas(バージョン0.14.1)のデータフレームで日付と株価の組み合わせを使用して行を検索しようとしていますが、奇妙なエラーが発生しています。Pandas Dataframe - 参照エラー

次のようになります私のパンダのデータフレーム:

      AAPL  IBM GOOG XOM  Date 
2011-01-10 16:00:00 340.99 143.41 614.21 72.02 2011-01-10 
2011-01-11 16:00:00 340.18 143.06 616.01 72.56 2011-01-11 
2011-01-12 16:00:00 342.95 144.82 616.87 73.41 2011-01-12 
2011-01-13 16:00:00 344.20 144.55 616.69 73.54 2011-01-13 
2011-01-14 16:00:00 346.99 145.70 624.18 74.62 2011-01-14 
2011-01-18 16:00:00 339.19 146.33 639.63 75.45 2011-01-18 
2011-01-19 16:00:00 337.39 151.22 631.75 75.00 2011-01-19 

私は、日付/文字列の組み合わせを使用して検索を行うにしようとすると、私は、次のエラーが表示さ:私が見ることができるものから

>>> df_data.lookup(date,ticker) 
Traceback (most recent call last): 
    File "/usr/lib/python2.7/dist-packages/IPython/core/interactiveshell.py", line 2820, in run_code 
    exec code_obj in self.user_global_ns, self.user_ns 
    File "<ipython-input-2-31ab981e2184>", line 1, in <module> 
    df_data.lookup(date,ticker) 
    File "/usr/local/lib/python2.7/dist-packages/pandas/core/frame.py", line 2207, in lookup 
    n = len(row_labels) 
TypeError: object of type 'datetime.datetime' has no len() 

をパンダのドキュメントでは、これはうまくいき、日付変数は通常の日付時刻です

>>> date 
Out[5]: datetime.datetime(2011, 1, 10, 16, 0) 

私は明らかに間違ったことをしていますか?

答えて

4

df.lookupは、引数として(代わりにスカラーの)2列-同類を見込ん:

In [25]: df.lookup(row_labels=[DT.datetime(2011,1,10,16,0)], col_labels=['AAPL']) 
Out[25]: array([ 340.99]) 

あなたは一つの値だけを検索したい場合は、代わりにdf.get_valueを使用します。

In [30]: df.get_value(DT.datetime(2011,1,10,16,0), 'AAPL') 
Out[30]: 340.99000000000001