Python 无法将dataframe中的日期列格式化为datetime,因此无法对其进行筛选

Python 无法将dataframe中的日期列格式化为datetime,因此无法对其进行筛选,python,pandas,dataframe,datetime,Python,Pandas,Dataframe,Datetime,我想和《纽约时报》的科罗纳病毒数据集玩一玩。 我想绘制它并按日期过滤,以仅显示最后几周。但是,我收到以下错误消息: TypeError:'>'在'bool'和'datetime.datetime'实例之间不受支持。由以下行驱动:df_toplot=df[df['state'].isin(top_states)&df['state']>da]。不知何故,我无法将date列转换为datetime格式,它的格式是pandas.core.series.series。我怎样才能改变这一点 import d

我想和《纽约时报》的科罗纳病毒数据集玩一玩。 我想绘制它并按日期过滤,以仅显示最后几周。但是,我收到以下错误消息:
TypeError:'>'在'bool'和'datetime.datetime'实例之间不受支持。
由以下行驱动:
df_toplot=df[df['state'].isin(top_states)&df['state']>da]
。不知何故,我无法将date列转换为datetime格式,它的格式是pandas.core.series.series。我怎样才能改变这一点

import datetime
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
df = pd.read_csv("https://raw.githubusercontent.com/nytimes/covid-19-data/master/us-states.csv")

df['date']= pd.to_datetime(df['date'])
print(type(df['date'])) 
#print(df['date'].iloc[1] > date_object)
variable = "deaths" # "cases"
#print(df.head())

d = pd.pivot_table(df, index= 'state', values= variable,aggfunc=np.sum)
top_states = d.nlargest(10, variable, keep='first').index.values
s = "2018-06-19 11:21:13.311"
da = datetime.datetime.strptime(s, '%Y-%m-%d %H:%M:%S.%f') 
print(type(df['date'])) 
df_toplot = df[df['state'].isin(top_states) & df['state'] > da]
df_toplot.pivot(index='date', columns='state', values=variable).plot()
plt.yscale('log')

我想你只是打了个小错误。您正在将日期与状态列进行比较

# Change this line
df_toplot = df[df['state'].isin(top_states) & df['state'] > da]

# To this (don't forget to separate conditions with parentheses)
df_toplot = df[(df['state'].isin(top_states)) & (df['date'] > da)]