人民博士。数据读取器 - 类型错误:字符串索引必须是整数

2024-01-02

直到今天,这段代码都运行得很好。 现在我收到此错误消息:TypeError:字符串索引必须是整数

import pandas_datareader as pdr
Equity_Indices = ['^GSPC', 'ES=F', 'NQ=F', 'YM=F', '^RUT', '^DJT', 
                  '^GDAXI', '^N225', '^SSMI', '^STOXX50E', '^FCHI', 
                  '^GSPTSE', '^HSI', '000001.SS', '^KS11', '^NSEI', '^AXJO']
Equity_Indices_df = pdr.DataReader(Equity_Indices, 'yahoo', start='1990-01-01', end='today')

发生了什么?我有点迷失在这里。

我完全迷失了,我没有改变任何事情。这段代码昨天运行得很好。


所以,如果你绝对必须使用pandas_datareader您需要将其降级为:

pip install pandas_datareader==0.9.0

您的代码将运行

import pandas_datareader as pdr 
import timedelta
import pandas as pd
from datetime import date

Equity_Indices = ['^GSPC', 'ES=F', 'NQ=F', 'YM=F', '^RUT', '^DJT', '^GDAXI', '^N225', '^SSMI', '^STOXX50E', '^FCHI', '^GSPTSE', '^HSI', '000001.SS', '^KS11', '^NSEI', '^AXJO']

print(pdr.__version__)
from datetime import datetime
startdate = '1990-01-01'
today = date.today()
enddate = today

dd = []
for symbol in Equity_Indices:
    try:
        Equity_Indices_df = pdr.DataReader(symbol,'yahoo',startdate,enddate)
        print(Equity_Indices_df.head(5))
        dd.append(Equity_Indices_df)
    except:
        print('did not find: '+symbol)

但会返回:

did not find: ^GSPC
did not find: ES=F
did not find: NQ=F
did not find: YM=F
did not find: ^RUT
did not find: ^DJT
did not find: ^GDAXI
did not find: ^N225
did not find: ^SSMI
did not find: ^STOXX50E
did not find: ^FCHI
did not find: ^GSPTSE
did not find: ^HSI
did not find: 000001.SS
did not find: ^KS11
did not find: ^NSEI
did not find: ^AXJO

这意味着Yahoo更改了从中检索符号数据的页面上的某些内容。

今天,唯一的解决方法是执行以下操作:

你需要使用y_finance并使用pdr_overide()

from pandas_datareader import data as pdr
from datetime import datetime,date

import yfinance as yf
yf.pdr_override()

y_symbols = ['^GSPC', 'ES=F', 'NQ=F', 'YM=F', '^RUT', '^DJT', '^GDAXI', '^N225', '^SSMI', '^STOXX50E', '^FCHI', '^GSPTSE', '^HSI', '000001.SS', '^KS11', '^NSEI', '^AXJO']

from datetime import datetime
startdate = datetime(1990,1,1)
today = date.today()
enddate = today


data = pdr.get_data_yahoo(y_symbols, start=startdate, end=enddate)

返回:

print(data.head(2)

   Adj Close                                                           \
           000001.SS ES=F NQ=F YM=F ^AXJO ^DJT ^FCHI       ^GDAXI       ^GSPC   
Date                                                                            
1990-01-02       NaN  NaN  NaN  NaN   NaN  NaN   NaN  1788.890015  359.690002   
1990-01-03       NaN  NaN  NaN  NaN   NaN  NaN   NaN  1867.290039  358.760010   

                         ... Volume                                          \
                ^GSPTSE  ... ^GDAXI        ^GSPC   ^GSPTSE ^HSI ^KS11 ^N225   
Date                     ...                                                  
1990-01-02  3994.230957  ...    0.0  162070000.0  164600.0  0.0   NaN   NaN   
1990-01-03  3999.317871  ...    0.0  192330000.0  147600.0  0.0   NaN   NaN   

                                               
           ^NSEI         ^RUT ^SSMI ^STOXX50E  
Date                                           
1990-01-02   NaN  162070000.0   NaN       NaN  
1990-01-03   NaN  192330000.0   NaN       NaN  

[2 rows x 102 columns]

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

人民博士。数据读取器 - 类型错误:字符串索引必须是整数 的相关文章

随机推荐

  • 使用端口 1433 的 Azure 输入端点被阻止?

    我正在运行一个 Windows Azure 辅助角色 该角色在端口 1433 上公开 WCF 服务 该端口也被定义为输入 TCP 端点
  • 自 SonarQube 5.2 起,批处理端不再支持任务

    我安装 SonarQube 5 2 和 Sonar runner 2 4 最新版本 我设法启动 SonarQube 但在尝试运行 Sonar runner 时出现以下错误 ERROR Unable to execute Sonar ERRO
  • 在devise 2.0中使用omniauth从facebook获取用户个人资料大图片

    我想从 Facebook 获取用户个人资料大图或普通图片 现在我使用以下代码从用户个人资料图片中获取方形版本 image gt access token info image http graph facebook com id pictu
  • 返回布尔值的 Java 方法的命名约定

    我喜欢在其他语言中的方法 函数名称末尾使用问号 Java 不允许我这样做 作为解决方法 我还能如何在 Java 中命名返回布尔值的方法 使用is has should can在某些情况下 在方法前面听起来不错 有没有更好的方法来命名这些方法
  • 如何在 PostgresQL 10 中备份分区表

    是否可以使用 PostgreSQL 10 备份特定分区表 使用时 sudo pg dump Fc f home schema backup t schema partitioned table dbname 我只得到基表的骨架 没有任何值
  • 锁分割与锁条带化

    以下是 Joshua 的 Effective Java 的摘录 如果您确实在内部同步您的类 您可以使用各种 实现高并发的技术 如锁分割 锁 条带化和非阻塞并发控制 上面表明锁分割和锁条带是两种不同的技术 但是当我试图找出它们之间的区别时 我
  • 如何将 Django 应用程序部署到 (AWS) 域名?

    我只使用 Django 几个星期 刚刚学习了部署 我有一个 AWS EC2 实例 我可以将我的 Django 网站 应用程序部署到其中 即 如果我在浏览器中访问 IP 地址 我就可以访问我的网站 但是 我不知道如何将同一个网站部署到我在 A
  • std::initializer_list{x, y, z} (CTAD) 有效吗?

    当构建一个std initializer list u 明确地 模板参数 U 被推导 例如 使用类模板参数推导 CTAD 换句话说 我知道以下陈述是有效的 std initializer list u
  • Rails 资产管道:将资产包含在公共文件夹而不是资产文件夹中是否是一个好习惯?

    我一直在努力将 Google Analytics 添加到我的 Rails 4 应用程序中 请参阅这个帖子 https stackoverflow com q 31428864 5086345 我通过在新文件中添加 Google 提供的 Ja
  • Lucene - 这是巨大索引的正确答案吗?

    Lucene 是否能够索引每个 50K 的 500M 文本文档 对于单个术语搜索和 10 个术语搜索 此类索引的预期性能如何 我应该担心并直接转移到分布式索引环境吗 Saar 是的 Lucene 应该能够处理这个问题 根据以下文章 http
  • 从音频文件输入中检测人声

    我正在尝试实现自动录音功能 类似于会说话的汤姆应用程序 我使用以下代码从录音机读取输入并分析缓冲区 float totalAbsValue 0 0f short sample 0 numberOfReadBytes audioRecorde
  • Git LFS - 如何使用一个命令跟踪多种文件类型

    我在 Git LFS 网站和文档中看到此命令 git lfs track psd 我的项目中有多种文件类型 我想使用 LFS 进行跟踪 并且希望在未来的项目中跟踪所有这些相同的文件类型 我希望能够粘贴单个命令来跟踪所有这些扩展 这可能吗 经
  • C++ 字符串文字数据类型存储

    void f char c Hello World 字符串存储在哪里 它有什么属性呢 我只知道它是一个常数 还有什么 我可以从函数体内返回它吗 它与您的二进制文件一起打包 我所说的打包是指硬连线 所以是的 您可以返回它并在其他地方使用它 但
  • 访问 Jenkins 中的构建变更日志

    我一直在绞尽脑汁地试图找到一种方法 将 Jenkins 生成的更改列表 来自 SVN pull 包含到我们的 Testflight 笔记中 我正在使用 Testflight 插件 它有一个注释字段 但詹金斯似乎没有创建任何参数 令牌来嵌入该
  • Java 中的持久数据结构

    有谁知道关于在 Java 中创建和使用持久数据结构的库或至少一些研究吗 我并不是将持久性称为长期存储 而是将持久性称为不变性 请参阅维基百科条目 http en wikipedia org wiki Persistent data stru
  • ASP.NET Identity - 将用户 ID 主键默认类型从字符串更改为 int 以及使用自定义表名称时出错

    我正在使用 Microsoft AspNet Identity 2 0 0 beta1 和 Entity Framework 6 1 0 beta1 2014 年 2 月 11 日发布 当我尝试将用户 ID 主键的默认类型从字符串更改为 i
  • 通过套接字读取和写入字节数据包

    我想通过 Socket 将 Android 设备连接到外部设备 Socket 连接外部设备成功 现在 如果外部设备需要任何数据 则按照以下顺序将字节数据包数据的请求发送到套接字 如果外部设备接收数据正确 则发送字节数据作为响应 参数 方法名
  • 如何使用 C# 从 BIOS 获取 CPU 温度信息?

    如何使用 C 从 Bios 获取 CPU 温度信息 我尝试了中的代码CPU温度监控 https stackoverflow com questions 2923984 cpu temperature monitoring c 但没有运气 e
  • 将纯字符串转换为 MAC 地址格式

    我正在尝试将一些字符串输入转换为正确的格式以使用 MAC 地址 所以我需要转换 00A0C914C829 to 00 A0 C9 14 C8 29 我有这个PowerShell脚本来实现这一点 string 00A0C914C829 out
  • 人民博士。数据读取器 - 类型错误:字符串索引必须是整数

    直到今天 这段代码都运行得很好 现在我收到此错误消息 TypeError 字符串索引必须是整数 import pandas datareader as pdr Equity Indices GSPC ES F NQ F YM F RUT D