如何从数据框中的熊猫日期时间选择列表中的值?

时间:2021-06-28 14:59:44

标签: python pandas dataframe

我有一个字符串格式的日期列表,如下所示:

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]"

为什么我会收到此错误?
需要一些帮助。

2 个答案:

答案 0 :(得分:0)

试试:

data = data[data["date"].isin(dates)]

答案 1 :(得分:-1)

data=data['date'].astype(str).isin(dates)

工作了。回答者-@Don'tAccept(第一条评论)