python - 如何在 Pandas 表的时间间隔内获取具有 DatetimeIndex 的行?

标签 python pandas

我正在使用这个方法:

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())]

有没有更好的方法?

我尝试使用 between():

df = df.loc[
  df.index.time.between(
    datetime.strptime("13:30", '%H:%M').time(),
    datetime.strptime("13:32", '%H:%M').time())]

它会产生一个错误:

'numpy.ndarray' object has no attribute 'between'

而且我没能找到合适的 numpy 函数。

最佳答案

使用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

关于python - 如何在 Pandas 表的时间间隔内获取具有 DatetimeIndex 的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70000637/

相关文章:

python - 如何从具有匹配 block 值的 block 中复制 pandas 中的第一行和最后一行?

python - 使用分位数回归和 Python 识别异常值

python-3.x - 合并更改 Pandas 类型

python - streamlit 中生成的多个相同的按键按钮

python - 在Python中分割多字标签的有效方法

python - 计算 Pandas 时间序列上的每日事件

python - ValueError : After pruning, 没有条款保留。尝试较低的 min_df 或较高的 max_df

python - 引用的字典键是绝对必须的吗?

Python并行,信号量泄漏警告和无回溯中止

python - Pandas读取带有中文文件名的excel