如何使用dataframe Between_time()函数

我正在尝试使用该between_time功能。我已经将字符串类型time格式化为datetime

dataset['TimeStamp'] = pd.to_datetime(dataset['TimeStamp'],format)

我定义了搜索开始时间和结束时间:

start = datetime.time(9,40,0)

end = datetime.time(10,00,0)

然后我打电话 dataset['TimeStamp'].between_time(start, end)

这是我得到的错误:

TypeError: Index must be DatetimeIndex

请如何解决。谢谢

回答:

示例-我使用评论中的信息:

import pandas as pd

import StringIO

import datetime

data = '''time --- value

1984-12-12 14:08:00 --- 1

1984-12-12 14:25:00 --- 2

1984-12-12 14:47:00 --- 4

1984-12-12 16:37:00 --- 3

1984-12-12 16:37:00 --- 9

1984-12-12 16:37:00 --- 5

1984-12-12 17:52:00 --- 3

1984-12-12 17:52:00 --- 7

1984-12-12 19:29:00 --- 2'''

#------------------------------------------------

df = pd.read_csv(StringIO.StringIO(data), sep=' --- ')

df['time'] = pd.DatetimeIndex(df['time'])

print "\nDataFrame:\n", df

print '\nIndex:', type(df.index)

#------------------------------------------------

df.set_index(keys='time', inplace=True)

print "\nDataFrame:\n", df

print '\nIndex:', type(df.index)

#------------------------------------------------

start = datetime.time(14,50,0)

end = datetime.time(18,0,0)

print "\nResult:\n", df['value'].between_time(start, end)

结果:

DataFrame:

time value

0 1984-12-12 14:08:00 1

1 1984-12-12 14:25:00 2

2 1984-12-12 14:47:00 4

3 1984-12-12 16:37:00 3

4 1984-12-12 16:37:00 9

5 1984-12-12 16:37:00 5

6 1984-12-12 17:52:00 3

7 1984-12-12 17:52:00 7

8 1984-12-12 19:29:00 2

Index: <class 'pandas.core.index.Int64Index'>

DataFrame:

value

time

1984-12-12 14:08:00 1

1984-12-12 14:25:00 2

1984-12-12 14:47:00 4

1984-12-12 16:37:00 3

1984-12-12 16:37:00 9

1984-12-12 16:37:00 5

1984-12-12 17:52:00 3

1984-12-12 17:52:00 7

1984-12-12 19:29:00 2

Index: <class 'pandas.tseries.index.DatetimeIndex'>

Result:

time

1984-12-12 16:37:00 3

1984-12-12 16:37:00 9

1984-12-12 16:37:00 5

1984-12-12 17:52:00 3

1984-12-12 17:52:00 7

Name: value, dtype: int64

以上是 如何使用dataframe Between_time()函数 的全部内容, 来源链接: utcz.com/qa/411652.html

回到顶部