分类 编程开发 下的文章

在处理历史数据时,最头疼的就是时间轴对不齐。今天复习了一下 Pandas 处理时间序列的几个基础操作,做个备忘。

  1. 转换为 Datetime 对象
    从 CSV 里读出来的时间通常是字符串,必须转换格式,否则无法进行时间相关的计算。
# 假设原始数据有一列叫 'datetime_str'
import pandas as pd
df['datetime'] = pd.to_datetime(df['datetime_str'])
df.set_index('datetime', inplace=True) # 设为索引,方便后续切片

2.按时间范围切片
用 loc 提取某一段时间的数据非常方便。

# 提取 2024年1月 到 2024年3月 的数据
subset = df.loc['2024-01-01':'2024-03-31']

3。时间重采样 (Resample)
如果我想把分钟级别的数据,汇总成小时级别的数据:

# 按 1 小时重采样
ohlc = df.resample('1H').agg({
    'Open': 'first',
    'High': 'max',
    'Low': 'min',
    'Close': 'last',
}).dropna()

注意这里必须用 .agg() 指定每一列的聚合方式,否则默认只会算平均值。

写代码处理数据,最怕的就是差之毫厘。尤其是时间对齐,一旦错位,后面算出来的所有结果都是错的。