Python 数据读取器的时间限制

Python 数据读取器的时间限制,python,pandas,pandas-datareader,Python,Pandas,Pandas Datareader,是否有一种方法可以通过pandas datareader仅提取一个特定日期的数据 假设我只想提取一些关于今天的信息: import pandas_datareader.data as web now = dt.datetime.now() start = now.year, now.month, now.day q = web.DataReader(source, 'googl', start, start) 然而,当我运行这个程序时,我得到了从最早到现在的所有数据 有办法解决这个问题吗 编辑

是否有一种方法可以通过pandas datareader仅提取一个特定日期的数据

假设我只想提取一些关于今天的信息:

import pandas_datareader.data as web
now = dt.datetime.now()
start = now.year, now.month, now.day
q = web.DataReader(source, 'googl', start, start)
然而,当我运行这个程序时,我得到了从最早到现在的所有数据

有办法解决这个问题吗

编辑: 在实现评论者建议的代码时,我仍然从源代码中获取所有可能的日期。我的代码如下:

import pandas_datareader.data as web
import pandas as pd
import datetime as dt
from datetime import datetime
import numpy as np
import matplotlib.pyplot as plt
from io import StringIO
import time    
def updatestock(stock):
        #now = dt.datetime.now()
        #start = now.year, now.month, now.day
        start_date = date = dt.datetime.now().date()
        q = web.DataReader(list_of_tickers, 'stooq', start = start_date, end = 
        start_date)
        resq = q.stack().reset_index()
        resq.columns.names = [None]
        resq.index.names = ['ID']
        stockdata = resq.groupby('Symbols')
        return stockdata

    list_of_tickers = ['DELL', 'GRPN', 'EBS']
    data = updatestock(list_of_tickers)

    stock1 = data.get_group('GRPN')
你可以试试这个

导入日期时间
开始日期=date=datetime.datetime.now().date()
q=web.DataReader(来源为“googl”,开始=开始日期,结束=开始结束)

我成功地测试了它,因为“开始”和“结束”参数的类型是datetime.datetime或datetime.date

“Stooq”的熊猫数据读取器未实现日期过滤器。这就是为什么建议的代码不适合您的原因。因此,您需要添加额外的代码来过滤返回数据帧中的记录。您可以尝试以下方法:

# Filter the Stooq Results by a Specific Date
stock_filter_mask = stock1["Date"] == start_date # Where "Date" is the column which contains date in returned DF.
stock_output = stock1[stock_filter_mask]
print("output = ", stock_output)

编辑:我找到了解决办法。“stooq”api在开始日期和结束日期不起作用。使用“yahoo”作为源修复了它

e、 g.,:

start = ('8-20-2019')
end = ('12-20-2019')

df = web.DataReader("AAPL", 'yahoo', start, end)

您能否共享当前和预期的输出,或者至少有足够的代码和数据供我们运行程序?请参阅:。感谢您的评论,我在尝试您的建议时添加了一个编辑。很遗憾,我无法让它工作。您好,是的,指的是您的编辑,现在您正在通过“pandas_datareader”使用“”的API。请查看我的编辑和本案例的答案。问题只指定了一个日期的数据。开始日期结束日期相同。这只适用于今天使用“yahoo”作为源代码的情况。例如,如果今天是2021-06-01,并且指定start='2021-06-01',end='2021-06-01',则只获得该日期的数据。但是,如果今天您正在寻找具体的前一天,比如“2021-05-18”,并提供start='2021-05-18'和end='2021-05-18',如果2021-05-19有交易,它将提供2天的数据-“2021-05-18”和“2021-05-19”。基本上,如果第二天不是交易日,或者第二天是未来日期,您将获得一天的数据。有点奇怪。