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

如何处理存储二维数组的pandas列表 提取指定标的数据存为DataFrame

操作指南

数据结构说明

持有的两个列表为严格按索引一一对应的映射关系:

  • tickers_univ1p1:长度为45,元素为美股交易标的代码
  • ohlcv_data1p1:长度为45,每个元素为对应标的的行情DataFrame,单表维度为1259行×7列,列字段包含Date、Open、High、Low、Close、Volume、Vwap
    数据初始化示例代码如下:
#Load Tickers from our predefined universes, 1.1, 2.1,3.1
#Get a list of OHLCV dataframes to pass into logrets above
tickers_univ1p1=get_universe_tickers('1.1', exchange='us_equity')[0]
ohlcv_data1p1=get_ohlcv_from_db_raw(tickers_univ1p1,datetime.now()-relativedelta(years=5), datetime.now())

前置校验

操作前先做长度校验,避免索引错位导致数据匹配错误:

assert len(tickers_univ1p1) == len(ohlcv_data1p1), "标的列表与行情列表长度不一致,存在数据缺失"

核心需求实现

打印指定标的对应的二维数组

通过标的代码定位对应索引,直接取出元素打印即可,以查询标的AAPL为例:

# 替换为需要查询的标的代码
target_ticker = "AAPL"
# 定位标的对应索引
target_index = tickers_univ1p1.index(target_ticker)
# 取出对应行情数据
target_ohlcv = ohlcv_data1p1[target_index]
# 打印完整二维数组
print(target_ohlcv)

存储为独立DataFrame

上述代码取出的target_ohlcv本身就是独立的pandas DataFrame对象,可直接用于后续计算或持久化存储:

# 例:存储为本地csv文件
target_ohlcv.to_csv(f"{target_ticker}_5year_ohlcv.csv", index=False)

其他常用操作

  • 给所有单标的DataFrame添加标的代码字段,方便后续合并分析
for idx, ticker in enumerate(tickers_univ1p1):
    ohlcv_data1p1[idx]["ticker"] = ticker
  • 合并45个标的的行情为一个总DataFrame
import pandas as pd
total_ohlcv = pd.concat(ohlcv_data1p1, ignore_index=True)
  • 按指标筛选符合条件的标的数据,比如筛选5年平均收盘价大于100美元的标的:
filter_tickers = []
filter_ohlcv = []
for ticker, df in zip(tickers_univ1p1, ohlcv_data1p1):
    if df["Close"].mean() > 100:
        filter_tickers.append(ticker)
        filter_ohlcv.append(df)
  • 批量计算每个标的的日对数收益率
import numpy as np
for df in ohlcv_data1p1:
    df["log_ret"] = np.log(df["Close"]/df["Close"].shift(1))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 16:15:53