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

freeCodeCamp Python算法交易课程:打印结果不符问题求助

问题排查与解决方案

下午好!我帮你分析下这段代码可能存在的问题,以及对应的修复方案:

1. 核心问题:弃用的append()方法

从Pandas 2.0版本开始,DataFrame.append()和Series.append()已经被正式弃用了。你在循环里反复调用append(),不仅会触发警告,还可能因为方法的行为变化导致数据拼接异常,最终输出结果不符合预期。而且这种循环拼接的方式效率极低,数据量稍大就会变慢。

2. 潜在的API数据问题

另外还要确认两个点:

  • 你CSV里的前5个股票代码是IEX Cloud沙箱环境支持的有效代码吗?无效代码会导致API返回错误数据或者空值
  • 可以在循环里临时打印print(data),检查返回的JSON结构里是否确实存在latestPrice和marketCap字段——沙箱环境的返回字段偶尔会和正式环境有细微差异

3. 修复后的代码示例

我把代码改成了更稳定高效的写法,同时增加了异常处理来排查问题:

import numpy as np
import pandas as pd
import requests
import xlsxwriter
import math
from secret import IEX_CLOUD_API_TOKEN

# 读取股票列表
stocks = pd.read_csv(r'XXXXXXXXXXXXXXXXXXXXXXX.csv')
my_columns = ['Ticker', 'Stock Price', 'Market Capitalisation', 'Number of Shares to Buy']

# 用列表收集每一行数据,避免循环append的问题
data_rows = []
for stock in stocks['Ticker'][:5]:
    api_url = f'https://sandbox.iexapis.com/stable/stock/{stock}/quote?token={IEX_CLOUD_API_TOKEN}'
    try:
        # 发送请求并检查HTTP错误
        response = requests.get(api_url)
        response.raise_for_status()
        data = response.json()
        
        # 确保必要字段存在再添加数据
        if 'latestPrice' in data and 'marketCap' in data:
            data_rows.append([
                stock,
                data['latestPrice'],
                data['marketCap'],
                'N/A'
            ])
        else:
            print(f"⚠️  股票 {stock} 的API返回缺少必要字段,请检查")
    except Exception as e:
        print(f"❌ 获取股票 {stock} 数据失败:{str(e)}")

# 一次性生成最终DataFrame
final_dataframe = pd.DataFrame(data_rows, columns=my_columns)
print(final_dataframe)

4. 补充:如果「购买数量」需要计算

如果你练习里的目标结果中,Number of Shares to Buy不是N/A而是计算出来的数值,那你需要添加对应的计算逻辑。比如假设你总投资金额是10000美元,可以在生成DataFrame后加上这段代码:

# 总投资金额
portfolio_size = 10000
# 每只股票的分配金额
position_size = portfolio_size / len(final_dataframe)
# 计算购买数量(向下取整)
final_dataframe['Number of Shares to Buy'] = final_dataframe.apply(
    lambda row: math.floor(position_size / row['Stock Price']),
    axis=1
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 08:03:33