2015-03-16 5 views
1

I've получила панда dataframe формы CSV файл со следующим индексомPython Панда IX TIMESTAMP

Time stamp     SOG Altitude 
2015-03-11T08:49:53.000Z  0 20 
2015-03-11T08:49:42.000Z  0 19 
2015-03-11T08:49:32.000Z  0 24 
..... 

Я бы хотел использовать IX для нарезки dataframe, но мне нужно ввести только часы и минуты в index, а не точное значение.

Например

df3= df.ix['2015-03-11T08:49':'2015-03-11T08:52',['SOG','Altitude' ]] 

Должен ли я использовать регулярные или имеет как выражения Панды способ сделать это?

ответ

1

Если вы сделаете Time stamp в DatetimeIndex, то вы могли бы использовать DataFrame.between_time method:

import io 
import pandas as pd 

text = '''\ 
Time stamp     SOG Altitude 
2015-03-11T08:49:53.000Z  0 20 
2015-03-11T08:49:42.000Z  0 19 
2015-03-11T08:49:32.000Z  0 24''' 

df = pd.read_table(io.BytesIO(text), sep='\s{2,}') 
df['Time stamp'] = pd.to_datetime(df['Time stamp']) 
df = df.set_index(['Time stamp']) 
df.between_time('8:49:32', '8:49:52') 

дает

     SOG Altitude 
Time stamp       
2015-03-11 08:49:42 0  19 
2015-03-11 08:49:32 0  24 
+0

Понял. благодаря – kamome

0

Преобразование индекса панд метки времени.

df.index = [pd.Timestamp(ts) for ts in df.index] 

Тогда ваше индексирование .ix должно работать так, как вы ожидали.

Смежные вопросы