【发布时间】:2021-12-13 18:13:38
【问题描述】:
我正在尝试从 Covid 数据库中获取一些值,并且我编写了以下代码,它可以按我的意愿工作(见下文),但在代码之后我有一个问题要问您:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
def main():
pd.set_option('display.max_rows', None)
df = pd.read_csv('https://raw.githubusercontent.com/CSSEGISandData/COVID-19/master/csse_covid_19_data/csse_covid_19_time_series/time_series_covid19_confirmed_global.csv')
df=df[df["Country/Region"]=="Italy"]
df=df.drop(columns=["Province/State","Lat","Long","Country/Region"])
df = df.columns.to_frame().T.append(df, ignore_index=True)
df.columns = range(len(df.columns))
df=df.T
df = df.rename(columns={0: 'date', 1: 'nuovi_casi'})
df['nuovi_casi'] = df['nuovi_casi'].diff(periods=1).fillna(1)
df = df[(df['date'] > '11/26/21') & (df['date'] <= '12/8/21')]
print(df)
dati_giornalieri=list(df.nuovi_casi)
sommatoriaitalia=(sum(dati_giornalieri)/1390000000)*100
print(sommatoriaitalia)
print(dati_giornalieri)
现在我想添加这部分代码来询问用户什么是开始日期和结束日期:
def main():
start_date=str(input("Enter starting date in format mm/dd/yy"))
end_date=str(input("Enter ending date in format mm/dd/yy"))
pd.set_option('display.max_rows', None)
df = pd.read_csv('https://raw.githubusercontent.com/CSSEGISandData/COVID-19/master/csse_covid_19_data/csse_covid_19_time_series/time_series_covid19_confirmed_global.csv')
df=df[df["Country/Region"]=="Italy"]
df=df.drop(columns=["Province/State","Lat","Long","Country/Region"])
df = df.columns.to_frame().T.append(df, ignore_index=True)
df.columns = range(len(df.columns))
df=df.T
df = df.rename(columns={0: 'date', 1: 'nuovi_casi'})
df['nuovi_casi'] = df['nuovi_casi'].diff(periods=1).fillna(1)
df = df[(df['date'] > start_date) & (df['date'] <= end_date)]
但在 df = df[(df['date'] > start_date) & (df['date']
start_date = datetime.strptime(input('Enter Start date in the format m/d/y'), '%m/%d/%y')
但我实际上得到了相同的结果,因为仍然存在问题,因为由于某种原因它只考虑每月一天或类似的事情,但无论如何结果并不如预期。
如何解决问题,选择中间的日子?谢谢。
【问题讨论】: