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

如何从pandas DataFrame中选取指定日期数据并过滤无目标日期的表

正确实现方案

你原来的np.where用法不符合需求,这个函数用于批量替换数组元素,不能用来筛选DataFrame行。可以按照如下逻辑修改代码:

import pandas as pd

acciones = ['FCEL', 'CAT']
# 定义目标日期
TARGET_DATE = "2021-09-03"

for accion_code in acciones:
    accion = Ticker(accion_code, "2021-1-1", "2021-9-20", [5, 10, 20])
    # 获取信号DataFrame,若buyingSignals()默认直接打印不返回值,可查看Ticker类是否有存储信号的实例属性,比如signal_df这类,替换下方的返回值即可
    signal_df = accion.buyingSignals()
    
    # 先判断目标日期是否在Date索引中,存在才输出
    if TARGET_DATE in signal_df.index:
        # 筛选指定行和指定列输出
        print(f"********** {accion_code} **********")
        print(signal_df.loc[[TARGET_DATE], ['Adj Close', 'Signal']])

补充说明

如果你的buyingSignals()方法本身只有打印逻辑,不会返回DataFrame,你需要修改Ticker类的对应方法,把生成的信号表作为返回值返回,或者将信号表存储为实例的公共属性(比如accion.signal_df)再读取即可。代码中提前做了日期存在性判断,自然就不会输出没有目标日期的标的信号表,完全符合你的要求。

内容的提问来源于stack exchange,提问作者Marco Andres Alarcon Sierra

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 09:06:04