我编写了一些简单的代码来迭代我正在分析的一组列表,并且发现了此错误 - 模块“numpy”没有属性“concat”,在这种情况下会有解决方案吗?
`
我们将用于此分析的股票
tech_list = ['AMZN', 'NVDA', 'VOO', 'QQQ']
设置数据抓取的结束和开始时间
tech_list = [' AMZN'、'NVDA'、'VOO'、'QQQ']
end = datetime.now() start = datetime(end.year - 1, end.month, end.day)
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"]
对于公司,com_name in zip(company_list, company_name): 公司[“公司名称”] = com_名称
df = pd.concat(公司列表,轴=0) df.tail(10)
AttributeError:模块“numpy”没有属性“concat” `
在代码中遇到了
AttributeError: module 'numpy' has no attribute 'concat'
错误,因为
concat
函数实际上是
pandas
库中的一个函数,而不是 NumPy。
以下是纠正代码的方法:
- 导入 pandas: 确保已导入 pandas 库。如果没有,请将其添加到的代码中:
python
import pandas as pd
-
使用
pd.concat
: 将concat
函数调用更改为pd.concat
,明确表明要使用 pandas 函数:
python
df = pd.concat(company_list, axis=0)
以下是纠正后的代码:
import yfinance as yf
from datetime import datetime
import pandas as pd
# 我们将用于此分析的股票
tech_list = ['AMZN', 'NVDA', 'VOO', 'QQQ']
# 设置数据抓取的结束和开始时间
end = datetime.now()
start = datetime(end.year - 1, end.month, end.day)
# 从 yfinance 下载股票数据
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"]
# 将公司名称添加到 DataFrame
for company, com_name in zip(company_list, company_name):
company['Company Name'] = com_name
# 使用 pandas 连接 DataFrame
df = pd.concat(company_list, axis=0)
# 打印 DataFrame 的最后 10 行
df.tail(10)
此代码应更正错误并按预期连接的数据帧。记住在使用
concat
函数之前始终导入 pandas 并使用
pd.concat
。