diff --git a/Analyser.py b/Analyser.py index 934723f..da9656c 100644 --- a/Analyser.py +++ b/Analyser.py @@ -33,13 +33,10 @@ class Analyser: self.df = pd.read_csv('statsfile.csv') self.df['dateRep'] = pd.to_datetime(self.df['dateRep'], format='%d/%m/%Y') - self.df = self.df.sort_values('dateRep') - self.df['totalCases'] = self.df['cases'].cumsum() - self.df['totalDeaths'] = self.df['deaths'].cumsum() - self.df['deathRate'] = self.df['deaths'] / self.df['cases'] * 100 def getAvailableCountries(self): - return self.df['countriesAndTerritories'].unique() + sorted = self.df.sort_values('countriesAndTerritories') + return sorted['countriesAndTerritories'].unique() def getAvailableDates(self): retList = [] @@ -65,6 +62,8 @@ class Analyser: countryData = self.df[self.df['countriesAndTerritories'].isin([country])] mask = (countryData['dateRep'] >= start_date) & (countryData['dateRep'] <= end_date) countryTimeData = countryData.loc[mask] + countryTimeData = countryTimeData.sort_values('dateRep') + countryTimeData['totalCases'] = countryTimeData['cases'].cumsum() countryTimeData.plot(ax=ax, x='dateRep', y='totalCases') @@ -133,6 +132,8 @@ class Analyser: countryData = self.df[self.df['countriesAndTerritories'].isin([country])] mask = (countryData['dateRep'] >= start_date) & (countryData['dateRep'] <= end_date) countryTimeData = countryData.loc[mask] + countryTimeData = countryTimeData.sort_values('dateRep') + countryTimeData['totalDeaths'] = countryTimeData['deaths'].cumsum() countryTimeData.plot(ax=ax, x='dateRep', y='totalDeaths') @@ -189,6 +190,10 @@ class Analyser: countryData = self.df[self.df['countriesAndTerritories'].isin([country])] mask = (countryData['dateRep'] >= start_date) & (countryData['dateRep'] <= end_date) countryTimeData = countryData.loc[mask] + countryTimeData = countryTimeData.sort_values('dateRep') + countryTimeData['totalCases'] = countryTimeData['cases'].cumsum() + countryTimeData['totalDeaths'] = countryTimeData['deaths'].cumsum() + countryTimeData['deathRate'] = countryTimeData['totalDeaths'] / countryTimeData['totalCases'] * 100 countryTimeData.plot(ax=ax, x='dateRep', y='deathRate')