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

统计纳斯达克周一与前一交易日周五走势相同的次数

统计纳斯达克周一与前一交易日周五走势相同的次数

需求说明

需要对比纳斯达克指数每个周一的日行情表现(上涨/下跌/持平)与前一交易日的周五表现,若二者走势一致则计入统计,最终输出符合条件的次数。已完成的工作包括:

  • 标记当日行情为RIALZO(上涨)、RIBASSO(下跌)或FLAT(持平)
  • 筛选出所有周一和周五的行情数据

完整实现代码

import yfinance as yf
import pandas as pd
import numpy as np

# 下载纳斯达克期货数据
database = yf.download('NQ=F')
df = pd.DataFrame(database)

# 添加星期列
df["Day's name"] = df.index.to_series().dt.day_name()
# 删除不需要的列(需赋值回df才会生效)
df = df.drop(columns=['Adj Close', 'Volume'])

# 标记每日行情表现:修正原代码的拼写错误(RIBASS0 → RIBASSO)
conditions = [
    df['Close'] - df['Open'] > 0,
    df['Close'] - df['Open'] < 0,
    df['Close'] - df['Open'] == 0
]
categories = ['RIALZO', 'RIBASSO', 'FLAT']
df['Daily Performance'] = np.select(conditions, categories, default='Unknown')

# 筛选周一和周五的数据
monday_mask = df["Day's name"] == 'Monday'
friday_mask = df["Day's name"] == 'Friday'
df_mask = df[monday_mask | friday_mask].copy()

# 按日期排序,确保时序逻辑正确
df_mask = df_mask.sort_index()
# 为每个周一匹配前一个交易日的周五行情表现
df_mask['Prev Friday Performance'] = np.where(
    df_mask["Day's name"] == 'Monday',
    df_mask['Daily Performance'].shift(1),
    np.nan
)

# 统计走势相同的次数
match_count = df_mask[
    (df_mask["Day's name"] == 'Monday') &
    (df_mask['Daily Performance'] == df_mask['Prev Friday Performance'])
].shape[0]

print(f"周一与前一交易日周五走势相同的次数:{match_count}")

关键步骤说明

  • 修正拼写错误:原代码中RIBASS0为笔误,改为RIBASSO保证分类标识一致性
  • 关联周一与对应周五:通过shift(1)获取每个周一的前一行数据(因已筛选周一/周五且按日期排序,前一行即为上一个交易日的周五)
  • 计数逻辑:仅针对周一数据,对比当日表现与前一交易日周五的表现,统计匹配的行数

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 15:02:40