2016-11-30 15 views
2

したがって、私はPandasパッケージについては初めてです。 私はPandas Dataframeで多くの質問をする必要がある、ETFに関する戦略についていくつかのバックテストを行っていました。 DF1はとても列と整数インデックス日時インデックスまたは列を使用してPython Pandas DataFrameを照会する

In[104]: df.head() 
Out[104]: 

         high  low open close volume openInterest 
2007-04-24 09:31:00 148.28 148.12 148.23 148.15 2304400  341400 
2007-04-24 09:32:00 148.21 148.14 148.14 148.19 2753500  449100 
2007-04-24 09:33:00 148.24 148.13 148.18 148.14 2863400  109900 
2007-04-24 09:34:00 148.18 148.12 148.13 148.16 3118287  254887 
2007-04-24 09:35:00 148.17 148.14 148.16 148.16 3202112   83825 

In[105]: df1.head() 
Out[105]: 

       dates high  low open close volume openInterest 
0 2007-04-24 09:31:00 148.28 148.12 148.23 148.15 2304400  341400 
1 2007-04-24 09:32:00 148.21 148.14 148.14 148.19 2753500  449100 
2 2007-04-24 09:33:00 148.24 148.13 148.18 148.14 2863400  109900 
3 2007-04-24 09:34:00 148.18 148.12 148.13 148.16 3118287  254887 
4 2007-04-24 09:35:00 148.17 148.14 148.16 148.16 3202112   83825 

としてタイムスタンプを持っていながら、 DFは日時のインデックスを持っています

だから、唯一の違いはということで、DFとDF1、のは、私はこれらの二つのデータフレームだとしましょう

df.loc['2015-11-17'] 
:驚いたことに

In[100]: %timeit df1[(df1['dates'] >= '2015-11-17') & (df1['dates'] < '2015-11-18')] 
%timeit df.loc[(df.index >= '2015-11-17') & (df.index < '2015-11-18')] 
%timeit df.loc['2015-11-17'] 
100 loops, best of 3: 4.67 ms per loop 
100 loops, best of 3: 3.14 ms per loop 
1 loop, best of 3: 259 ms per loop 

はパンダで構築されたロジックを使用して、実際に最も遅いということである:私は、クエリの速度を少しテスト

なぜ誰が知っていますか? パンダのデータフレームを照会する最も効率的な方法についてのドキュメントやブログはありますか?これは、単一の日付の.loc[]を使用するよりも「パンダロジック」だろう、私の意見では

df['2015-11-17'] 

:私があなただったら

答えて

0

私は簡単な方法を使用します。私はそれも速いと推測しています。分OHLCのデータフレーム上の

テスト:

%timeit df.loc[(df.index >= '2015-11-17') & (df.index < '2015-11-18')] 
%timeit df.loc['2015-11-17'] 
%timeit df['2015-11-17'] 

100 loops, best of 3: 13.8 ms per loop 
1 loop, best of 3: 1.39 s per loop 
1000 loops, best of 3: 486 us per loop 
+0

おかげで、男!私もそれをテストしました。もっとも簡単な方法は最速です。私はPandasとのさまざまな照会方法について、どこでどこを知ることができるのか分かりますか? –

+0

[http://pandas.pydata.org/pandas-docs/stable/indexing.html](http://pandas.pydata.org/pandas-docs/stable/indexing.html)これは開始です –

+0

haha​​ I今実際にそれを見て、もう一度たくさんありがとう! –

関連する問題