Я хотел немного поиграть с набором данных о коронирусных вирусах времен Нью-Йорка. Я хочу построить график и отфильтровать по дате, чтобы показать только последние недели. Однако я получаю это сообщение об ошибке: TypeError: '>' not supported between instances of 'bool' and 'datetime.datetime'
, управляемое этой строкой: df_toplot = df[df['state'].isin(top_states) & df['state'] > da]
. Каким-то образом мне не удается преобразовать столбец даты в формат даты и времени, вместо этого он имеет формат 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')