2016-05-31 14 views
1

インデックス(タイプTimedeltaIndex)とTotalVolumeという1つのインデックスを持つ非常に単純なパンダデータフレームがあります。インデックスの値を持つパンダのデータフレームの行にアクセス

>> print(df) 
     TotalVolume 
... 
09:00:00 143846.153846 
09:05:00 84353.846154 
09:10:00 46946.153846 
09:15:00 46765.384615 
09:20:00 53076.923077 
09:25:00 31642.307692 
09:30:00 48269.230769 
... 

私は、例えば09:00:00でこの辞書を照会し、143846.153846を取得できるようにしたいと思います。私は

>> print(df.index) 
TimedeltaIndex(['07:00:00', '07:05:00', '07:10:00', '07:15:00', '07:20:00', '07:25:00', '07:30:00', '07:35:00', '07:40:00', '07:45:00', '07:50:00', '07:55:00', '08:00:00', '08:05:00', '08:10:00', '08:15:00', '08:20:00', '08:25:00', '08:30:00', '08:35:00', '08:40:00', '08:45:00', '08:50:00', '08:55:00', '09:00:00', '09:05:00', '09:10:00', '09:15:00', '09:20:00', '09:25:00', '09:30:00', '09:35:00', '09:40:00', '09:45:00', '09:50:00', '09:55:00', '10:00:00', '10:05:00', '10:10:00', '10:15:00', '10:20:00', '10:25:00', '10:30:00', '10:35:00', '10:40:00', '10:45:00', '10:50:00', '10:55:00', '11:00:00', '11:05:00', '11:10:00', '11:15:00', '11:20:00', '11:25:00', '11:30:00', '11:35:00', '11:40:00', '11:45:00', '11:50:00', '11:55:00', '12:00:00', '12:05:00', '12:10:00', '12:15:00', '12:20:00', '12:25:00', '12:30:00', '12:35:00', '12:40:00', '12:45:00', '12:50:00', '12:55:00', '13:00:00', '13:05:00', '13:10:00', '13:15:00', '13:20:00', '13:25:00', '13:30:00', '13:35:00', '13:40:00', '13:45:00', 
      '13:50:00', '13:55:00', '14:00:00', '14:05:00', '14:10:00', '14:15:00', '14:20:00', '14:25:00', '14:30:00', '14:35:00', '14:40:00', '14:45:00', '14:50:00', '14:55:00', '15:00:00'], 
      dtype='timedelta64[ns]', freq=None) 

print(df['09:00:00']) 

私は

 TotalVolume 
09:00:00 143846.153846 
09:05:00 84353.846154 
09:10:00 46946.153846 
09:15:00 46765.384615 
09:20:00 53076.923077 
09:25:00 31642.307692 
09:30:00 48269.230769 
09:35:00 35715.384615 
09:40:00 38576.923077 
09:45:00 37211.538462 
09:50:00 41803.846154 
09:55:00 37503.846154 

持っている私が望むように、フィルタが動作していないように思え:情報については、これは、インデックスの構造があります。それは09:05:00のために正しく動作します。

これを行うにあたって最もパンダトニックな方法は何ですか?私にとって

答えて

1

locに動作します:

print (df) 
      TotalVolume 
09:00:00 143846.153846 
09:05:00 84353.846154 
09:10:00 46946.153846 
09:15:00 46765.384615 
09:20:00 53076.923077 
09:25:00 31642.307692 
09:30:00 48269.230769 

print (df.index) 
TimedeltaIndex(['09:00:00', '09:05:00', '09:10:00', '09:15:00', '09:20:00', 
       '09:25:00', '09:30:00'], 
       dtype='timedelta64[ns]', freq=None) 

print(df.loc['09:00:00', 'TotalVolume']) 
143846.153846 

print(df.loc['0 day 09:00:00', 'TotalVolume']) 
143846.153846 

print(df.loc['09:00:00']) 
TotalVolume 143846.153846 
Name: 0 days 09:00:00, dtype: float64 

しかし:

print(df['09:05:00']) 

KeyError: '09:05:00'

そして:

print(df['09:05:00':'09:20:00']) 

      TotalVolume 
09:05:00 84353.846154 
09:10:00 46946.153846 
09:15:00 46765.384615 
09:20:00 53076.923077 
+0

グレート!この回答はありがたいです。非常にきれいな!私はこれが動作することを確認します。 –

+0

ありがとう!君も! –

関連する問題