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

在Pandas DataFrame中对比收盘价与前一日并生成Info列

为交易历史DataFrame添加涨跌标记列

需求说明

基于给定的交易历史数据,新增Info列,标记每个交易日收盘价相对前一日的变化:

  • 上涨(收盘价高于前一日)标记为1
  • 下跌(收盘价低于前一日)标记为-1
  • 持平(收盘价与前一日相同)标记为0

代码实现

首先构造示例DataFrame:

import pandas as pd

# 构造示例交易数据
data = {
    'open': [187100, 188000, 188000, 188000, 188000],
    'high': [187100, 188000, 188000, 188000, 188000],
    'low': [187100, 188000, 188000, 188000, 188000],
    'close': [187100, 188000, 188000, 188000, 188000]
}
df = pd.DataFrame(data)

方法一:使用numpy.where链式判断

import numpy as np

# 计算收盘价与前一日的差值
close_diff = df['close'].diff()

# 根据差值生成Info列
df['Info'] = np.where(close_diff > 0, 1, 
                      np.where(close_diff < 0, -1, 0))

方法二:使用apply自定义函数

def generate_change_flag(close_series):
    diff = close_series.diff()
    return diff.apply(lambda x: 1 if x > 0 else (-1 if x < 0 else 0))

df['Info'] = generate_change_flag(df['close'])

最终结果

处理后的DataFrame如下:

openhighlowcloseInfo
1871001871001871001871000
1880001880001880001880001
1880001880001880001880000
1880001880001880001880000
1880001880001880001880000

说明:第一行无前置交易日数据,差值为NaN,统一标记为0;第二行收盘价较前一日上涨,标记为1;后续交易日收盘价均持平,标记为0。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 07:43:14