You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Pandas为透视表添加昨日B列?能否不新增列做ML特征?

Pandas实现前一日数据提取与机器学习特征构建

1. 新增yesterday_B列的实现

完全可以用Pandas的shift()函数实现,这是处理时序数据偏移的标准方法:

# 假设你的透视表数据存储在DataFrame df中
df['yesterday_B'] = df['B'].shift(1)

shift(1)会将B列的所有数据向下偏移1行,这样每一行的yesterday_B就对应上一行(前一日)的B值,第一行因没有前序数据会自动填充为NaN,完全匹配你需要的结果。

2. 不新增列直接构建机器学习特征

不需要新增列到原DataFrame,直接构造包含当前B值和前一日B值的特征矩阵即可:

方法一:用Pandas构造特征DataFrame

# 直接拼接当前B值和偏移后的B值,得到特征矩阵
feature_matrix = pd.concat([df['B'], df['B'].shift(1)], axis=1)
# 可选:给特征命名
feature_matrix.columns = ['current_B', 'yesterday_B']

方法二:用NumPy构造特征数组

如果后续模型需要NumPy数组格式的输入,也可以直接构造:

import numpy as np

# 组合当前B值和偏移后的B值为二维数组
feature_array = np.column_stack([df['B'].values, df['B'].shift(1).values])

这样得到的feature_matrix或feature_array可直接用于机器学习模型的训练,无需修改原始数据。

内容的提问来源于stack exchange,提问作者Mohmmad Hadi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 00:24:25