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

解决股票数据分析代码中AttributeError: module 'numpy' has no attribute 'concat'错误

问题与解决方案:AttributeError: module 'numpy' has no attribute 'concat'

问题重现

运行股票分析代码时触发以下错误:

AttributeError: module 'numpy' has no attribute 'concat'

原代码如下:

import numpy as pd

# The stocks we'll use for this analysis:

tech_list = ['AMZN', 'NVDA', 'VOO', 'QQQ']

# Set up End and Start times for data grab
tech_list = ['AMZN', 'NVDA', 'VOO', 'QQQ']


end = datetime.now()
start = datetime(end.year - 1, end.month, end.day)


for stock in tech_list:
    globals()[stock] = yf.download(stock, start, end)


company_list = [AMZN, NVDA, VOO, QQQ]
company_name = ["AMAZON", "NVIDIA", "Vanguard S&P 500", "Invesco QQQ"]


for company, com_name in zip(company_list, company_name):
    company["company_name"] = com_name

df = pd.concat(company_list, axis=0)
df.tail(10)

错误原因

  1. 核心错误:第一行导入语句错误,将numpy别名为pd,但concat()是pandas库的方法,numpy没有这个属性。
  2. 隐含问题:代码中使用了datetime和yf(yfinance),但没有导入这两个模块,运行时还会触发额外的导入错误。
  3. 冗余代码:重复定义了tech_list变量。

修复步骤

  • 修正导入:将import numpy as pd改为import pandas as pd,如果不需要numpy可直接删除该行;
  • 导入缺失模块:添加import datetime和import yfinance as yf;
  • 移除冗余的tech_list定义;

完整修正代码

import pandas as pd
import datetime
import yfinance as yf

# 用于分析的股票列表
tech_list = ['AMZN', 'NVDA', 'VOO', 'QQQ']

# 设置数据抓取的起止时间
end = datetime.datetime.now()
start = datetime.datetime(end.year - 1, end.month, end.day)

# 下载各股票数据
for stock in tech_list:
    globals()[stock] = yf.download(stock, start, end)

# 合并数据并添加公司名称
company_list = [AMZN, NVDA, VOO, QQQ]
company_name = ["AMAZON", "NVIDIA", "Vanguard S&P 500", "Invesco QQQ"]

for company, com_name in zip(company_list, company_name):
    company["company_name"] = com_name

# 拼接DataFrame
df = pd.concat(company_list, axis=0)
print(df.tail(10))

内容的提问来源于stack exchange,提问作者André Freitas

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 17:18:20