如何使用 python 过滤时间序列或数据框中的日期范围

How to filter for dates range in timeseries or dataframe using python

仍然是 Python 的新手,只是想学习这些东西。感谢任何帮助。

现在,当我连接到 Alpha Vantage 时,我得到了所有日期的全部数据,它看起来像这样

我找到了一些很好的指南资源,但我总是收到空数据框或错误

到目前为止代码是这样的

import pandas as pd
from pandas import DataFrame
import datetime
from datetime import datetime as dt
from alpha_vantage.timeseries import TimeSeries
import numpy as np

stock_ticker = 'SPY'
api_key = open('/content/drive/My Drive/Colab Notebooks/key').read()

ts = TimeSeries (key=api_key, output_format = "pandas")
data_daily, meta_data = ts.get_daily_adjusted(symbol=stock_ticker, outputsize ='full')
#data_date_changed = data[:'2019-11-29']

data = pd.DataFrame(data_daily)

df.loc[datetime.date(year=2014,month=1,day=1):datetime.date(year=2015,month=2,day=1)]

import datetime 
df.loc[datetime.date(year=2014,month=1,day=1):datetime.date(year=2014,month=2,day=1)]

根据我的经验,你不能在 loc 中传递一个简单的字符串,需要是一个 datetime 对象。

答案是

stock_ticker = 'SPY'
api_key = 'apikeyddddd'

ts = TimeSeries (key=api_key, output_format = "pandas")
data_daily, meta_data = ts.get_daily_adjusted(symbol=stock_ticker, outputsize ='full')

test = data_daily[(data_daily.index > '2014-01-01') & (data_daily.index <= '2017-08-15')]

print(data_daily)
print(test)