【Pandas】pandas DataFrame between_time
Pandas2.2 DataFrame
Reindexing selection label manipulation
方法 | 描述 |
---|---|
DataFrame.add_prefix(prefix[, axis]) | 用于在 DataFrame 的行标签或列标签前添加指定前缀的方法 |
DataFrame.add_suffix(suffix[, axis]) | 用于在 DataFrame 的行标签或列标签后添加指定后缀的方法 |
DataFrame.align(other[, join, axis, level, …]) | 用于对齐两个 DataFrame 或 Series 的方法 |
DataFrame.at_time(time[, asof, axis]) | 用于筛选 特定时间点 的行的方法 |
DataFrame.between_time(start_time, end_time) | 用于筛选 指定时间范围内的数据行 的方法 |
pandas.DataFrame.between_time()
pandas.DataFrame.between_time(start_time, end_time)
是一个用于筛选 指定时间范围内的数据行 的方法,常用于时间序列数据中提取某一段时间段(如上午9点到下午5点)的数据。
📌 方法说明:
DataFrame.between_time(start_time, end_time)
该方法根据 DatetimeIndex
的“时间”部分进行筛选,不考虑日期部分。
🔧 参数说明:
参数 | 类型 | 说明 |
---|---|---|
start_time | datetime.time 或字符串(如 '09:00:00' ) | 开始时间(包含) |
end_time | datetime.time 或字符串(如 '17:00:00' ) | 结束时间(包含) |
⚠️ 要求 DataFrame 的索引是
DatetimeIndex
类型。
✅ 返回值:
- 返回一个新的
DataFrame
,包含在指定时间范围内的所有行。
🧪 示例代码:
import pandas as pd# 创建一个以时间为索引的 DataFrame
rng = pd.date_range('2024-01-01', periods=6, freq='H')
df = pd.DataFrame({'A': [10, 20, 30, 40, 50, 60]}, index=rng)print("Original DataFrame:")
print(df)# 提取时间在 '01:00:00' 到 '03:00:00' 之间的行
df_filtered = df.between_time('01:00:00', '03:00:00')print("\nRows between time '01:00:00' and '03:00:00':")
print(df_filtered)
📤 输出结果:
Original DataFrame:A
2024-01-01 00:00:00 10
2024-01-01 01:00:00 20
2024-01-01 02:00:00 30
2024-01-01 03:00:00 40
2024-01-01 04:00:00 50
2024-01-01 05:00:00 60Rows between time '01:00:00' and '03:00:00':A
2024-01-01 01:00:00 20
2024-01-01 02:00:00 30
2024-01-01 03:00:00 40
🧠 应用场景:
- 提取每日特定交易时段的数据;
- 过滤日间或夜间时间段的数据;
- 配合
at_time()
使用可实现更复杂的时间条件筛选。