[英]how to use dataframe between_time() function
I am trying to use the between_time
function.我正在尝试使用between_time
函数。 I have formatted the string type time to datetime我已将字符串类型时间格式化为日期时间
dataset['TimeStamp'] = pd.to_datetime(dataset['TimeStamp'],format)
and I defined search start time and end time:我定义了搜索开始时间和结束时间:
start = datetime.time(9,40,0)
end = datetime.time(10,00,0)
then I call dataset['TimeStamp'].between_time(start, end)
然后我调用dataset['TimeStamp'].between_time(start, end)
This is the error I get:这是我得到的错误:
TypeError: Index must be DatetimeIndex
Please how can I fix it.请问我该如何解决。 Thank you谢谢
Example - I use info from comments:示例 - 我使用评论中的信息:
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)
Results:结果:
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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.