Я работаю с таблицами ECD C covid-19: source = https://www.ecdc.europa.eu/en/publications-data/download-todays-data-geographic-distribution-covid-19-cases-worldwide
Я преобразовал таблицу loooooooooong в сводную, более полезную, используя pandas , Теперь у меня есть таблица, индексируемая по дате, со случаями и смертями в некоторых выбранных странах
def downloadECDC(url)
world = pd.read_csv(url)
today = datetime.today().strftime("%d%m%Y")
world.to_csv('ECDC' + today + '.csv')
world['date'] = pd.to_datetime((world.year*10000+world.month*100+world.day).apply(str),format='%Y%m%d')
dt = world[['date','deaths','cases','countriesAndTerritories', 'popData2018']]
dt['DperHab'] = dt['deaths']/dt['popData2018']
preoutput = pd.pivot_table(dt.loc[(dt['countriesAndTerritories']=='Spain') | (dt['countriesAndTerritories']=='Italy') | (dt['countriesAndTerritories']=='Germany') | (dt['countriesAndTerritories']=='France') | (dt['countriesAndTerritories']=='United_Kingdom') | (dt['countriesAndTerritories']=='Portugal') | (dt['countriesAndTerritories']=='Netherlands') | (dt['countriesAndTerritories']=='Iran') | (dt['countriesAndTerritories']=='China') | (dt['countriesAndTerritories']=='South_Korea')], index = ['date'], values=['deaths','cases'], columns = 'countriesAndTerritories', aggfunc=np.sum, fill_value = 0)
precases = pd.pivot_table(dt.loc[(dt['countriesAndTerritories']=='Spain') | (dt['countriesAndTerritories']=='Netherlands')| (dt['countriesAndTerritories']=='Italy') | (dt['countriesAndTerritories']=='France') ], index = ['date'], values=['cases'], columns = 'countriesAndTerritories', aggfunc=np.sum, fill_value = 0)
predeaths= pd.pivot_table(dt.loc[(dt['countriesAndTerritories']=='Spain') | (dt['countriesAndTerritories']=='Netherlands')| (dt['countriesAndTerritories']=='Italy') | (dt['countriesAndTerritories']=='France')], index = ['date'], values=['deaths'], columns = 'countriesAndTerritories', aggfunc=np.sum, fill_value = 0)
predxh= pd.pivot_table(dt.loc[(dt['countriesAndTerritories']=='Spain') | (dt['countriesAndTerritories']=='Netherlands')| (dt['countriesAndTerritories']=='Italy') | (dt['countriesAndTerritories']=='France')], index = ['date'], values=['DperHab'], columns = 'countriesAndTerritories', aggfunc=np.sum, fill_value = 0)
output = preoutput.reindex(axis = 1, level = 1, labels = ['Spain','Italy','Germany','France','United_Kingdom','Portugal','Netherlands','Iran','China','South_Korea'])
cases = precases.reindex(axis = 1, level = 1, labels = ['Spain','Italy','France','Netherlands'])
deaths = predeaths.reindex(axis = 1, level = 1, labels = ['Spain','Italy','France','Netherlands'])
dxhab = predxh.reindex(axis = 1, level = 1, labels = ['Spain','Italy','France','Netherlands'])
output.to_excel('ECDC' + today + '.xlsx')
Я хочу создать новую сводную таблицу, значения которой будут рассчитываться путем суммирования смертей от одной даты и до начала график Я пробовал несколько вариантов, но безрезультатно. Что-то вроде, я думаю:
preaggdeath= pd.pivot_table(dt.loc[(dt['countriesAndTerritories']=='Spain') | (dt['countriesAndTerritories']=='Netherlands')| (dt['countriesAndTerritories']=='Italy') | (dt['countriesAndTerritories']=='France')], index = ['date'], values=[XXXXX], columns = 'countriesAndTerritories', aggfunc=np.sum, fill_value = 0) # when XXXX is like to add deaths from one date to the start of series backwards
Заранее спасибо
Редактировать: Что у меня есть
Что бы я хотел иметь