按日期过滤 Pandas 数据框不起作用

Filtering Pandas Dataframe by date not working

我正在使用 Cryptowatch API 下载比特币价格数据。下载价格数据效果很好,但我只需要 1 个月前的价格数据,即 2019 年 10 月 29 日至 2019 年 11 月 28 日的数据。我阅读了几个类似问题的答案,但它似乎不适用于我的代码,因为过滤后得到的输出与未过滤后得到的输出相同。

这是我的代码:

#define 1day period
periods = '86400'

#get price data from cryptowatchAPI

resp = requests.get('https://api.cryptowat.ch/markets/bitfinex/btcusd/ohlc', params={'periods': periods})

resp.ok

#create pandas dataframe
data = resp.json()
df = pd.DataFrame(data['result'][periods], columns=[
    'CloseTime', 'OpenPrice', 'HighPrice', 'LowPrice', 'ClosePrice', 'Volume', 'NA'])

#Make a date out of CloseTime
df['CloseTime'] = pd.to_datetime(df['CloseTime'], unit='s')


#make CloseTime Index of the Dataframe
df.set_index('CloseTime', inplace=True)

#filter df by date until 1 month ago
df.loc[datetime.date(year=2019,month=10,day=29):datetime.date(year=2019,month=11,day=28)]

df

没有错误或任何错误,但输出始终相同,因此过滤不起作用。 非常感谢您!!

使用 strings 日期时间格式进行过滤,另请查看 docs 中的更多信息:

df1 = df['2019-10-29':'2019-11-28']

或者:

s = datetime.datetime(year=2019,month=10,day=29)
e = datetime.datetime(year=2019,month=11,day=28)
df1 = df[s:e]