我在pandas中有一个数据框架,我想过滤它。如何过滤它,使它只包含大于5年前1月1日的行?
用下面的代码,我得到了错误:TypeError:无法比较datetime.date时间和datetime.date
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import datetime
from dateutil.relativedelta import relativedelta
sns.set()
df = pd.read_excel("Data.xlsx", sheet_name='Seasonality')
df = df[1:]
df = df.rename(columns = {df.columns[0]: 'Date', df.columns[1]: 'WTI', df.columns[2]: 'RBOB'})
print(df)
today = date.today()
fiveYrAgo = date.today() - relativedelta(years=5)
seasStart = datetime.date(int(today.year-5),1,1)
dfSeas = df[(df['Date'] > seasStart)]
字符串
2条答案
按热度按时间bf1o4zei1#
根据您的代码,seasStart似乎是一个datetime.date对象。
将该对象转换为datetime.datetime:
字符串
oxcyiej72#
最后我选择了另一个解决方案:
将“Date”列转换为datetime,然后使用字符串过滤数据框以获得所需日期
字符串