我有一个字符串格式的日期列表,如下所示:
dates=['2021-06-23','2021-06-22','2021-06-18']
我正在尝试使用 yfinance 库收集股票(cl=f//原油)的数据。这是现在的代码:
我正在尝试返回日期(列表)中的日期数据。
import yfinance as yf
import pandas as pd
key='cl=f'
dates=['2021-06-23','2021-06-22','2021-06-18','2021-06-17']
data=yf.Ticker(key).history(period='max')
data['date']=data.index
data.reset_index(drop=True,inplace=True)
#rearranging columns
cols=['Open', 'High', 'Low', 'Close', 'Volume', 'Dividends', 'Stock Splits','date']
cols=cols[-1:]+cols[:-1]
data=data[cols]
print(data.head())
我试过使用:
data=data[(str(data['date'])== i for i in dates)]
它给了我以下错误:
KeyError: "None of [Index([False, False, False, False], dtype='object')] are in the [columns]"
为什么我会收到此错误?
需要一些帮助。
答案 0 :(得分:0)
试试:
data = data[data["date"].isin(dates)]
答案 1 :(得分:-1)
data=data['date'].astype(str).isin(dates)
工作了。回答者-@Don'tAccept(第一条评论)