[英]How to get rows having DatetimeIndex within time interval in pandas table?
I am using this method:我正在使用这种方法:
df = pd.DataFrame({'date': [datetime(2021, 11, 1, 13, 30), datetime(2021, 11, 2, 13, 31), datetime(2021, 11, 3, 13, 32), datetime(2021, 11, 1, 13, 33)],
'value': [1, 2, 3, 5]})
df = df.set_index('date')
df = df.loc[
(df.index.time >= datetime.strptime("13:30", '%H:%M').time()) & \
(df.index.time < datetime.strptime("13:32", '%H:%M').time())]
Is there any better way?有没有更好的办法?
I tried to use between()
:我尝试使用
between()
:
df = df.loc[
df.index.time.between(
datetime.strptime("13:30", '%H:%M').time(),
datetime.strptime("13:32", '%H:%M').time())]
It generates an error:它会产生一个错误:
'numpy.ndarray' object has no attribute 'between'
And I didn't manage to find an appropriate numpy
function.而且我没能找到合适的
numpy
function。
Use DataFrame.between_time
:使用
DataFrame.between_time
:
print (df.between_time('13:30','13:32'))
value
date
2021-11-01 13:30:00 1
2021-11-02 13:31:00 2
2021-11-03 13:32:00 3
Alternative would be替代方案是
df['date'] =pd.to_datetime(df['date'])
df[df['date'].dt.strftime("%H:%M").between('13:30','13:32')]
date value
0 2021-11-01 13:30:00 1
1 2021-11-02 13:31:00 2
2 2021-11-03 13:32:00 3
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.