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

Python导入sp500_stocks.csv遇FileNotFoundError问题求助

文件找不到问题的排查与解决

一、先解决sp500_stocks.csv找不到的问题

1. 绝对路径验证

  • 把路径里的(taking out name for privacy)替换成你的真实用户名,比如C:/Users/John/Desktop/starter_files/sp500_stocks.csv
  • 直接从文件资源管理器复制该文件的完整路径:右键文件→属性→安全→对象名称,复制后把反斜杠\换成正斜杠/,或者保留反斜杠但加双反斜杠\\,或者用r前缀(你已经用了r,但要确保路径完全匹配)

2. 检查当前工作目录

在代码开头加一行,确认Python的工作路径:

import os
print(os.getcwd())

如果相对路径sp500_stocks.csv的位置不是这个输出的目录,要么把文件移到该目录,要么用正确的相对路径(比如./Desktop/starter_files/sp500_stocks.csv,根据实际层级调整)

3. 确认文件存在性

用代码直接检查路径是否有效:

import os
file_path = r'C:/Users/真实用户名/Desktop/starter_files/sp500_stocks.csv'
print(os.path.exists(file_path))

如果输出False,说明:

  • 路径拼写错误
  • 文件被删除/移动了
  • 文件名有拼写错误(比如大小写、多空格、后缀名不对)

4. 权限排查

如果文件在系统保护目录(比如Program Files),右键Python脚本→以管理员身份运行,再试一次。

二、跳过本地文件,直接用API获取标普500成分股

如果本地文件始终搞不定,直接通过API获取成分股列表更高效,也避免文件依赖:

示例代码(用yahoo_fin库)

from yahoo_fin import stock_info as si
import pandas as pd

# 获取标普500所有成分股代码
sp500_tickers = si.tickers_sp500()

# 批量获取单只股票的最新数据(以苹果为例)
aapl_data = si.get_data('aapl')
# 获取最新股价
latest_price = aapl_data['close'].iloc[-1]

# 批量遍历所有成分股,按需收集数据
stock_data = []
for ticker in sp500_tickers[:10]:  # 先测试前10只,避免请求过多被限制
    try:
        data = si.get_data(ticker)
        stock_info = {
            'ticker': ticker,
            'latest_price': data['close'].iloc[-1],
            'market_cap': si.get_quote_table(ticker)['Market Cap']
        }
        stock_data.append(stock_info)
    except Exception as e:
        print(f"获取{ticker}数据失败: {e}")

df = pd.DataFrame(stock_data)

三、计算自定义加权投资组合的购买数量

  1. 确定权重规则:比如等权重(每只股票占比相同)、市值加权(按市值占比分摊),或者自定义基本面权重(比如市盈率、市净率)
  2. 设定总投资金额:比如total_investment = 10000
  3. 计算每只股票的分配金额和购买数量:
# 示例:等权重分配
total_stocks = len(df)
weight_per_stock = 1 / total_stocks
df['allocated_amount'] = total_investment * weight_per_stock
# 购买数量取整(避免碎股)
df['shares_to_buy'] = (df['allocated_amount'] / df['latest_price']).astype(int)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 00:30:53