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

如何将yfinance返回的Pandas DataFrame转换为含datetime字段的字典?

问题描述

我通过yfinance获取了季度利润表的DataFrame,需要将其转换为特定格式的字典列表,用于Django Rest Framework。期望的格式如下(注:原格式外层大括号为语法错误,正确应为方括号包裹的列表):

[
   {
     'datetime': '22-09-30',
     'TotalRevenue': 'xxxx',
     'CostOfRevenue': 'xxxx'
   },
   {
     'datetime': '22-06-30',
     'TotalRevenue': 'xxxx',
     'CostOfRevenue': 'xxxx'
   },
   {
     'datetime': '22-03-30',
     'TotalRevenue': 'xxxx',
     'CostOfRevenue': 'xxxx'
   },
   {
     'datetime': '21-12-30',
     'TotalRevenue': 'xxxx',
     'CostOfRevenue': 'xxxx'
   }
]

我目前的代码如下,但输出格式不符合要求:

stockTicker = yf.Ticker(symbol + '.IS')

stockIncomeQuarterlyPanda = stockTicker.quarterly_income_stmt

stockIncomeQuarterlyChangeNan = stockIncomeQuarterlyPanda.fillna(0)

stockIncomeQuarterlyPandaToDict = stockIncomeQuarterlyChangeNan.to_dict()

stockIncomeQuarterly = stringify_keys(stockIncomeQuarterlyPandaToDict)
解决方案

yfinance返回的季度利润表默认是行=财务指标、列=日期的结构,需要调整格式后再转换为目标字典列表:

import yfinance as yf

def get_formatted_income_data(symbol):
    # 获取股票数据
    stock_ticker = yf.Ticker(f"{symbol}.IS")
    # 获取季度利润表并填充空值
    income_df = stock_ticker.quarterly_income_stmt.fillna(0)
    
    # 转置DataFrame,将日期转为行索引
    transposed_df = income_df.T.reset_index()
    # 重命名日期列
    transposed_df = transposed_df.rename(columns={"index": "datetime"})
    
    # 格式化日期为'YY-MM-DD'格式
    transposed_df["datetime"] = transposed_df["datetime"].dt.strftime("%y-%m-%d")
    
    # 调整财务指标列名(匹配目标格式的驼峰式命名)
    transposed_df = transposed_df.rename(
        columns={
            "Total Revenue": "TotalRevenue",
            "Cost Of Revenue": "CostOfRevenue"
        }
    )
    
    # 提取需要的字段并转为字典列表
    return transposed_df[["datetime", "TotalRevenue", "CostOfRevenue"]].to_dict("records")

关键步骤说明

  • 转置DataFrame:原结构中日期是列名,转置后日期变为行数据,方便按日期维度生成字典项
  • 日期格式化:利用dt.strftime()将Pandas的datetime类型转为指定的字符串格式
  • 列名映射:yfinance返回的财务指标名带空格,通过重命名转为目标格式的驼峰式命名
  • 生成字典列表:to_dict("records")方法直接将DataFrame的每一行转为一个字典,最终输出符合DRF需求的列表格式

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 13:30:42