Python Pandas ix时间戳

时间:2015-03-16 18:32:37

标签: python pandas

我有一个pandas数据框格式的csv文件,其中包含以下索引

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来切割数据帧,但我需要在索引中输入几小时和一分钟,而不是确切的值。

例如

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

我应该使用常规表达还是让Pandas有办法做到这一点?

注意:截至Pandas v0.20,.ix indexer is deprecated赞成.iloc / .loc

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

将索引转换为Pandas时间戳。

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

然后您的.ix索引应该按照您的预期工作。