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]) | 用于筛选 特定时间点 的行的方法 |
pandas.DataFrame.at_time()
pandas.DataFrame.at_time(time, asof=False, axis=None)
是一个用于筛选 特定时间点 的行的方法,常用于时间序列数据中提取某一个具体时刻的数据。
📌 方法说明:
DataFrame.at_time(time, asof=False, axis=None)
该方法根据时间戳中的“时间”部分进行筛选,适用于 DatetimeIndex
类型的索引。
🔧 参数说明:
参数 | 类型 | 说明 |
---|---|---|
time | datetime.time 或字符串(如 '09:30:00' ) | 要选择的时间点 |
asof | bool ,默认为 False | 如果为 True ,则返回最接近该时间但不晚于目标时间的最近一行 |
axis | {0 or 'index', None} ,默认为 0 | 指定对齐的轴,通常只支持 index(即行) |
✅ 返回值:
- 返回一个新的
DataFrame
,包含与指定时间匹配的行。
🧪 示例代码:
import pandas as pd
import numpy as np
# 创建一个以时间为索引的 DataFrame
rng = pd.date_range('2024-01-01', periods=5, freq='H')
df = pd.DataFrame({'A': [1, 2, 3, 4, 5]}, index=rng)
print("Original DataFrame:")
print(df)
# 提取时间是 "00:00:00" 的行
df_0000 = df.at_time('00:00:00')
# 提取时间是 "12:00:00" 的行
df_1200 = df.at_time('12:00:00')
print("\nRows at time '00:00:00':")
print(df_0000)
print("\nRows at time '12:00:00':")
print(df_1200)
📤 输出结果:
Original DataFrame:
A
2024-01-01 00:00:00 1
2024-01-01 01:00:00 2
2024-01-01 02:00:00 3
2024-01-01 03:00:00 4
2024-01-01 04:00:00 5
Rows at time '00:00:00':
A
2024-01-01 00:00:00 1
Rows at time '12:00:00':
Empty DataFrame
Columns: [A]
Index: []
🧠 应用场景:
- 时间序列分析中提取每日固定时刻的数据(如开盘价、收盘价等);
- 数据清洗时提取或过滤特定时间点的数据;
- 结合
between_time()
可进一步筛选时间段。