├── .gitignore
├── data
├── week2
│ ├── epta.jpg
│ ├── train.csv
│ └── validate.csv
├── quarantine.csv
├── regions_ru.csv
├── countries.csv
└── time_series
│ ├── deaths_ru.csv
│ └── confirmed_ru.csv
├── requirements.txt
├── README.md
├── util
├── model_decay.py
├── features.py
├── data.py
└── model_lgb.py
└── notebooks
├── parsers
├── MobilityApple.ipynb
├── MobilityGoogle.ipynb
├── MobilityYandex.ipynb
├── QuarantineDates.ipynb
└── TopologyVec.ipynb
├── visualizations
└── BarChartRace.ipynb
└── models
└── SimpleWeek2.ipynb
/.gitignore:
--------------------------------------------------------------------------------
1 | .idea
2 | .ipynb_checkpoints
3 | __pycache__
4 |
--------------------------------------------------------------------------------
/data/week2/epta.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tyz910/sberbank-covid19/HEAD/data/week2/epta.jpg
--------------------------------------------------------------------------------
/requirements.txt:
--------------------------------------------------------------------------------
1 | jupyter==1.0.0
2 | beautifulsoup4==4.8.2
3 | requests==2.23.0
4 | pandas==1.0.3
5 | pmdarima==1.5.3
6 | tqdm==4.45.0
7 | seaborn==0.10.0
8 | lightgbm==2.3.1
9 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | COVID-19 Data Challenge.
2 | ========================
3 |
4 | - Модели:
5 | - [LightGBM](/notebooks/models/LightGBM.ipynb).
6 | - [ARIMA](/notebooks/models/ARIMA.ipynb).
7 | - [SimpleWeek2](/notebooks/models/SimpleWeek2.ipynb).
8 | - Визуализации:
9 | - Число заражений по регионам России: [chart](https://public.flourish.studio/visualisation/2027941/), [notebook](/notebooks/visualizations/BarChartRace.ipynb).
10 | - Индекс самоизоляции: [notebook](/notebooks/visualizations/Isolation.ipynb).
11 | - Дополнительные данные:
12 | - Mobility Reports:
13 | - [Google](/data/mobility-google.csv).
14 | - [Apple](/data/mobility-apple.csv).
15 | - [Yandex](/data/mobility-yandex.csv) (регионы России).
16 | - [Даты карантина](/data/quarantine.csv).
17 | - [Эмбеддинги](/data/regions_ru_vec.csv) топологии транспортной сети.
18 |
--------------------------------------------------------------------------------
/util/model_decay.py:
--------------------------------------------------------------------------------
1 | import numpy as np
2 | import pandas as pd
3 |
4 |
5 | def predict_decay(data, num_days=90, decay=0.99):
6 | date_to = data['date'].max()
7 | date_from = date_to - pd.to_timedelta(3, unit='d')
8 |
9 | data_to = data[data['date'] == date_to][['country', 'confirmed', 'deaths']]
10 | data_from = data[data['date'] == date_from][['country', 'confirmed', 'deaths']]
11 |
12 | data_avg = pd.merge(data_to, data_from, on='country')
13 | data_avg['confirmed'] = (data_avg['confirmed_x'] - data_avg['confirmed_y']) / 3
14 | data_avg['deaths'] = ((data_avg['deaths_x'] - data_avg['deaths_y']) / 3)
15 |
16 | data_avg = data_avg.set_index('country')[['confirmed', 'deaths']]
17 | data_to = data_to.set_index('country')
18 |
19 | preds = pd.DataFrame()
20 | for i in range(1, num_days + 1):
21 | date_data = (data_to + i * data_avg - decay * data_avg * np.sum([x for x in range(i)]) / num_days).copy()
22 | date_data['date'] = date_to + pd.to_timedelta(i, unit='d')
23 |
24 | preds = preds.append(date_data.reset_index()[['date', 'country', 'confirmed', 'deaths']], ignore_index=True)
25 |
26 | return preds.rename(columns={
27 | 'confirmed': 'prediction_confirmed',
28 | 'deaths': 'prediction_deaths',
29 | })
30 |
--------------------------------------------------------------------------------
/notebooks/parsers/MobilityApple.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "code",
5 | "execution_count": 1,
6 | "metadata": {},
7 | "outputs": [
8 | {
9 | "name": "stdout",
10 | "output_type": "stream",
11 | "text": [
12 | "/home/tyz910/src/sberbank-covid19\n"
13 | ]
14 | }
15 | ],
16 | "source": [
17 | "%cd '../..'"
18 | ]
19 | },
20 | {
21 | "cell_type": "code",
22 | "execution_count": 2,
23 | "metadata": {},
24 | "outputs": [],
25 | "source": [
26 | "import pandas as pd\n",
27 | "\n",
28 | "URL = 'https://covid19-static.cdn-apple.com/covid19-mobility-data/2006HotfixDev20/v2/en-us/applemobilitytrends-2020-04-27.csv'\n",
29 | "countries = pd.read_csv('data/countries.csv', na_filter=False)\n",
30 | "\n",
31 | "df = pd.read_csv(URL)\n",
32 | "df = df[df['geo_type'] == 'country/region']\n",
33 | "df = df[df['region'].isin(countries['name'])]\n",
34 | "df = df.drop(columns=['geo_type'])\n",
35 | "df = df.groupby(['region', 'transportation_type']).first().stack().unstack(1).reset_index()\n",
36 | "df = df.rename(columns={\n",
37 | " 'level_1': 'date',\n",
38 | " 'driving': 'apl-driving',\n",
39 | " 'transit': 'apl-transit',\n",
40 | " 'walking': 'apl-walking',\n",
41 | "})\n",
42 | "df = pd.merge(df, countries, left_on='region', right_on='name')[['date', 'country', 'apl-driving', 'apl-transit', 'apl-walking']]\n",
43 | "df.to_csv('data/mobility-apple.csv', index=False)"
44 | ]
45 | }
46 | ],
47 | "metadata": {
48 | "kernelspec": {
49 | "display_name": "Python 3",
50 | "language": "python",
51 | "name": "python3"
52 | },
53 | "language_info": {
54 | "codemirror_mode": {
55 | "name": "ipython",
56 | "version": 3
57 | },
58 | "file_extension": ".py",
59 | "mimetype": "text/x-python",
60 | "name": "python",
61 | "nbconvert_exporter": "python",
62 | "pygments_lexer": "ipython3",
63 | "version": "3.6.10"
64 | }
65 | },
66 | "nbformat": 4,
67 | "nbformat_minor": 4
68 | }
69 |
--------------------------------------------------------------------------------
/data/week2/train.csv:
--------------------------------------------------------------------------------
1 | date,country,confirmed,deaths
2 | 2020-04-19,RU-AD,91,2
3 | 2020-04-19,RU-AL,2,0
4 | 2020-04-19,RU-ALT,72,0
5 | 2020-04-19,RU-AMU,16,0
6 | 2020-04-19,RU-ARK,107,0
7 | 2020-04-19,RU-AST,123,3
8 | 2020-04-19,RU-BA,252,10
9 | 2020-04-19,RU-BEL,90,2
10 | 2020-04-19,RU-BRY,279,1
11 | 2020-04-19,RU-BU,115,2
12 | 2020-04-19,RU-CE,219,5
13 | 2020-04-19,RU-CHE,68,0
14 | 2020-04-19,RU-CHU,2,0
15 | 2020-04-19,RU-CU,193,1
16 | 2020-04-19,RU-DA,292,9
17 | 2020-04-19,RU-IN,269,5
18 | 2020-04-19,RU-IRK,55,2
19 | 2020-04-19,RU-IVA,183,1
20 | 2020-04-19,RU-KAM,34,0
21 | 2020-04-19,RU-KB,136,0
22 | 2020-04-19,RU-KC,67,0
23 | 2020-04-19,RU-KDA,383,5
24 | 2020-04-19,RU-KEM,35,1
25 | 2020-04-19,RU-KGD,126,1
26 | 2020-04-19,RU-KGN,13,0
27 | 2020-04-19,RU-KHA,185,4
28 | 2020-04-19,RU-KHM,175,0
29 | 2020-04-19,RU-KIR,150,2
30 | 2020-04-19,RU-KK,68,0
31 | 2020-04-19,RU-KL,74,3
32 | 2020-04-19,RU-KLU,188,2
33 | 2020-04-19,RU-KO,481,3
34 | 2020-04-19,RU-KOS,66,2
35 | 2020-04-19,RU-KR,19,0
36 | 2020-04-19,RU-KRS,196,2
37 | 2020-04-19,RU-KYA,300,0
38 | 2020-04-19,RU-LEN,417,0
39 | 2020-04-19,RU-LIP,149,1
40 | 2020-04-19,RU-MAG,63,0
41 | 2020-04-19,RU-ME,262,1
42 | 2020-04-19,RU-MO,258,1
43 | 2020-04-19,RU-MOS,4663,49
44 | 2020-04-19,RU-MOW,24324,176
45 | 2020-04-19,RU-MUR,354,3
46 | 2020-04-19,RU-NEN,1,0
47 | 2020-04-19,RU-NGR,98,1
48 | 2020-04-19,RU-NIZ,646,4
49 | 2020-04-19,RU-NVS,108,3
50 | 2020-04-19,RU-OMS,33,0
51 | 2020-04-19,RU-ORE,184,2
52 | 2020-04-19,RU-ORL,132,1
53 | 2020-04-19,RU-PER,198,3
54 | 2020-04-19,RU-PNZ,140,5
55 | 2020-04-19,RU-PRI,80,2
56 | 2020-04-19,RU-PSK,44,6
57 | 2020-04-19,RU-ROS,232,0
58 | 2020-04-19,RU-RYA,267,0
59 | 2020-04-19,RU-SA,88,0
60 | 2020-04-19,RU-SAK,19,0
61 | 2020-04-19,RU-SAM,79,0
62 | 2020-04-19,RU-SAR,114,0
63 | 2020-04-19,RU-SE,120,2
64 | 2020-04-19,RU-SMO,173,2
65 | 2020-04-19,RU-SPE,1760,8
66 | 2020-04-19,RU-STA,232,3
67 | 2020-04-19,RU-SVE,141,1
68 | 2020-04-19,RU-TA,191,0
69 | 2020-04-19,RU-TAM,187,0
70 | 2020-04-19,RU-TOM,29,0
71 | 2020-04-19,RU-TUL,287,0
72 | 2020-04-19,RU-TVE,270,0
73 | 2020-04-19,RU-TY,13,0
74 | 2020-04-19,RU-TYU,227,2
75 | 2020-04-19,RU-UD,66,3
76 | 2020-04-19,RU-ULY,168,2
77 | 2020-04-19,RU-VGG,93,1
78 | 2020-04-19,RU-VLA,225,5
79 | 2020-04-19,RU-VLG,93,0
80 | 2020-04-19,RU-VOR,156,5
81 | 2020-04-19,RU-YAN,116,1
82 | 2020-04-19,RU-YAR,117,0
83 | 2020-04-19,RU-YEV,20,0
84 | 2020-04-19,RU-ZAB,34,0
85 | 2020-04-19,UA-40,13,0
86 | 2020-04-19,UA-43,45,0
87 |
--------------------------------------------------------------------------------
/data/quarantine.csv:
--------------------------------------------------------------------------------
1 | country,date,level
2 | ALB,2020-03-13,National
3 | ARE,2020-03-26,National
4 | ARG,2020-03-19,National
5 | ARM,2020-03-24,National
6 | AUS,2020-03-23,National
7 | AUT,2020-03-16,National
8 | AZE,2020-03-31,National
9 | BEL,2020-03-18,National
10 | BGD,2020-03-26,National
11 | BLR,2020-04-07,City
12 | BOL,2020-03-22,National
13 | BRA,2020-03-17,State
14 | BRB,2020-03-28,National
15 | CHE,2020-03-17,National
16 | CHL,2020-03-19,National
17 | COL,2020-03-25,National
18 | CRI,2020-03-23,National
19 | CUB,2020-03-23,National
20 | DEU,2020-03-23,National
21 | DNK,2020-03-11,National
22 | DOM,2020-03-19,National
23 | DZA,2020-03-23,City
24 | ECU,2020-03-16,National
25 | ERI,2020-04-02,National
26 | ESP,2020-03-14,National
27 | FIN,2020-03-27,Region
28 | FJI,2020-03-20,City
29 | FRA,2020-03-17,National
30 | GBR,2020-03-23,National
31 | GEO,2020-03-31,National
32 | GHA,2020-03-30,Metropolitan Area
33 | GRC,2020-03-23,National
34 | HND,2020-03-20,National
35 | HRV,2020-03-18,National
36 | HUN,2020-03-28,National
37 | IND,2020-03-25,National
38 | IRL,2020-03-12,National
39 | IRQ,2020-03-22,National
40 | ISR,2020-04-02,City
41 | ITA,2020-03-09,National
42 | JAM,2020-04-15,Parish
43 | JOR,2020-03-18,National
44 | JPN,2020-04-07,Prefecture
45 | KWT,2020-03-14,National
46 | LBN,2020-03-15,National
47 | LBR,2020-03-23,County
48 | LBY,2020-03-22,National
49 | LTU,2020-03-16,National
50 | LUX,2020-03-18,National
51 | MAR,2020-03-19,National
52 | MDG,2020-03-23,City
53 | MNE,2020-03-24,Municipality
54 | MYS,2020-03-18,National
55 | NGA,2020-03-30,City
56 | NLD,2020-03-16,National
57 | NOR,2020-03-12,National
58 | NPL,2020-03-24,National
59 | NZL,2020-03-26,National
60 | OMN,2020-04-10,Governorate
61 | PAK,2020-03-24,National
62 | PAN,2020-03-25,National
63 | PER,2020-03-16,National
64 | PHL,2020-03-27,Province
65 | PNG,2020-03-24,National
66 | POL,2020-03-13,National
67 | PRT,2020-03-19,National
68 | PRY,2020-03-20,National
69 | QAT,2020-03-11,Industrial park
70 | ROU,2020-03-25,National
71 | RUS,2020-03-30,Metropolitan area
72 | RWA,2020-03-21,National
73 | SAU,2020-03-29,City
74 | SGP,2020-04-07,National
75 | SLV,2020-03-12,National
76 | SMR,2020-03-14,National
77 | SRB,2020-03-15,National
78 | SVK,2020-03-16,National
79 | THA,2020-03-25,National
80 | TTO,2020-03-17,National
81 | TUN,2020-03-22,National
82 | TUR,2020-04-23,National
83 | UKR,2020-03-17,National
84 | VEN,2020-03-17,National
85 | ZAF,2020-03-26,National
86 | ZWE,2020-03-30,National
87 |
--------------------------------------------------------------------------------
/util/features.py:
--------------------------------------------------------------------------------
1 | import numpy as np
2 |
3 | COUNTRY_FEATURES = ["population", "area", "density", "lat", "long", "is_region"]
4 | DAYS_SINCE_CONFIRMED = [1, 10, 50, 100, 500, 1000, 5000, 10000]
5 |
6 |
7 | def add_features(data, countries):
8 | add_prev_values(data)
9 | add_days_since_confirmed(data, DAYS_SINCE_CONFIRMED)
10 | add_country_features(data, countries, COUNTRY_FEATURES)
11 | data.fillna(0, inplace=True)
12 |
13 |
14 | def add_prev_values(data, num_days=40):
15 | for i in range(1, num_days + 1):
16 | for col in ['confirmed', 'deaths']:
17 | data[f"{col}_prev{i}"] = data.groupby("country")[col].shift(i)
18 |
19 | data.fillna(0, inplace=True)
20 |
21 |
22 | def add_days_since_confirmed(data, days):
23 | for i in days:
24 | data[f'days_since_{i}_confirmed'] = 0
25 | data_confirmed = data[data['confirmed'] >= i]
26 | for c in data_confirmed['country'].unique():
27 | idx = data_confirmed[data_confirmed['country'] == c].index
28 | data.loc[idx, f'days_since_{i}_confirmed'] = np.arange(len(idx))
29 |
30 |
31 | def add_country_features(data, countries, features):
32 | data[features] = data.join(countries, how='left', on='country')[features]
33 |
34 |
35 | def get_Xy(data, gap):
36 | days_since_features = [f'days_since_{i}_confirmed' for i in DAYS_SINCE_CONFIRMED]
37 |
38 | X = data[COUNTRY_FEATURES + days_since_features].copy()
39 | X['perc_confirmed'] = data[f'confirmed_prev{gap}'] / data['population']
40 |
41 | for c in ['confirmed', 'deaths']:
42 | X[f'{c}_prev'] = data[f'{c}_prev{gap}']
43 |
44 | for i in range(3):
45 | X[f'diff_{i + 1}_{c}'] = data[f'{c}_prev{gap + i}'] - data[f'{c}_prev{gap + i + 1}']
46 | X[f'change_{i + 1}_{c}'] = (data[f'{c}_prev{gap + i}'] + 1) / (data[f'{c}_prev{gap + i + 1}'] + 1)
47 |
48 | for i in [1, 2]:
49 | X[f'diff_change_{i}_{c}'] = (X[f'diff_{i}_{c}'] + 1) / (X[f'diff_{i + 1}_{c}'] + 1)
50 | X[f'diff_change_12_{c}'] = (X[f'diff_change_1_{c}'] + X[f'diff_change_2_{c}']) / 2
51 |
52 | X[f'diff_123_{c}'] = (data[f'{c}_prev{gap}'] - data[f'{c}_prev{gap + 3}']) / 3
53 | X[f'change_1_3_{c}'] = (data[f'{c}_prev{gap}'] + 1) / (data[f'{c}_prev{gap + 3}'] + 1)
54 | X[f'change_1_7_{c}'] = (data[f'{c}_prev{gap}'] + 1) / (data[f'{c}_prev{gap + 7}'] + 1)
55 |
56 | for f in days_since_features:
57 | X.loc[X[f] < gap, f] = 0
58 |
59 | y = data[['confirmed', 'deaths']].copy()
60 | y -= data[[f'confirmed_prev{gap}', f'deaths_prev{gap}']].values
61 | y.loc[y['confirmed'] < 0, 'confirmed'] = 0
62 | y.loc[y['deaths'] < 0, 'deaths'] = 0
63 |
64 | return X, np.log10(y + 1.0)
65 |
--------------------------------------------------------------------------------
/notebooks/parsers/MobilityGoogle.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "code",
5 | "execution_count": 1,
6 | "metadata": {},
7 | "outputs": [
8 | {
9 | "name": "stdout",
10 | "output_type": "stream",
11 | "text": [
12 | "/home/tyz910/src/sberbank-covid19\n"
13 | ]
14 | }
15 | ],
16 | "source": [
17 | "%cd '../..'"
18 | ]
19 | },
20 | {
21 | "cell_type": "code",
22 | "execution_count": 2,
23 | "metadata": {},
24 | "outputs": [],
25 | "source": [
26 | "import urllib\n",
27 | "import pandas as pd\n",
28 | "from tqdm import tqdm\n",
29 | "\n",
30 | "\n",
31 | "def read_csv_from_url(url):\n",
32 | " try:\n",
33 | " return pd.read_csv(url)\n",
34 | " except urllib.error.HTTPError as e:\n",
35 | " if e.status == 404:\n",
36 | " return None\n",
37 | " raise e\n",
38 | "\n",
39 | "\n",
40 | "countries = pd.read_csv('data/countries.csv', na_filter=False)"
41 | ]
42 | },
43 | {
44 | "cell_type": "code",
45 | "execution_count": 3,
46 | "metadata": {},
47 | "outputs": [
48 | {
49 | "name": "stderr",
50 | "output_type": "stream",
51 | "text": [
52 | "168it [05:02, 1.80s/it]\n"
53 | ]
54 | }
55 | ],
56 | "source": [
57 | "PLACES = ['parks', 'residential', 'retail-and-recreation', 'transit-stations', 'workplaces', 'grocery-and-pharmacy']\n",
58 | "\n",
59 | "\n",
60 | "def google_mobility_by_country(code):\n",
61 | " data = []\n",
62 | "\n",
63 | " for place in PLACES:\n",
64 | " df = read_csv_from_url(f'https://pastelsky.github.io/covid-19-mobility-tracker/output/{code}/mobility-{place}.csv')\n",
65 | " if df is not None:\n",
66 | " df = df.rename(columns={'value': place})\n",
67 | " data.append(df)\n",
68 | " \n",
69 | " if data:\n",
70 | " return pd.concat(data).groupby('date').first()\n",
71 | " else:\n",
72 | " return None\n",
73 | "\n",
74 | "\n",
75 | "data = []\n",
76 | "\n",
77 | "for i, row in tqdm(countries[countries['iso_alpha2'] != ''][['country', 'iso_alpha2']].iterrows()):\n",
78 | " mobility = google_mobility_by_country(row['iso_alpha2'])\n",
79 | "\n",
80 | " if mobility is not None:\n",
81 | " mobility['country'] = row['country']\n",
82 | " data.append(mobility)\n",
83 | "\n",
84 | "pd.concat(data).groupby(['country', 'date']).first().reset_index().to_csv('data/mobility-google.csv', index=False)"
85 | ]
86 | }
87 | ],
88 | "metadata": {
89 | "kernelspec": {
90 | "display_name": "Python 3",
91 | "language": "python",
92 | "name": "python3"
93 | },
94 | "language_info": {
95 | "codemirror_mode": {
96 | "name": "ipython",
97 | "version": 3
98 | },
99 | "file_extension": ".py",
100 | "mimetype": "text/x-python",
101 | "name": "python",
102 | "nbconvert_exporter": "python",
103 | "pygments_lexer": "ipython3",
104 | "version": "3.6.10"
105 | }
106 | },
107 | "nbformat": 4,
108 | "nbformat_minor": 4
109 | }
110 |
--------------------------------------------------------------------------------
/util/data.py:
--------------------------------------------------------------------------------
1 | import requests
2 | import pandas as pd
3 |
4 |
5 | def update_data():
6 | time_series_data = {
7 | 'confirmed.csv': 'https://raw.githubusercontent.com/CSSEGISandData/COVID-19/master/csse_covid_19_data/csse_covid_19_time_series/time_series_covid19_confirmed_global.csv',
8 | 'deaths.csv': 'https://raw.githubusercontent.com/CSSEGISandData/COVID-19/master/csse_covid_19_data/csse_covid_19_time_series/time_series_covid19_deaths_global.csv',
9 | 'confirmed_ru.csv': 'https://raw.githubusercontent.com/grwlf/COVID-19_plus_Russia/master/csse_covid_19_data/csse_covid_19_time_series/time_series_covid19_confirmed_RU.csv',
10 | 'deaths_ru.csv': 'https://raw.githubusercontent.com/grwlf/COVID-19_plus_Russia/master/csse_covid_19_data/csse_covid_19_time_series/time_series_covid19_deaths_RU.csv',
11 | }
12 |
13 | for file_name, url in time_series_data.items():
14 | r = requests.get(url, allow_redirects=True)
15 | if r.status_code == 200:
16 | print(file_name, 'loaded')
17 | with open('data/time_series/' + file_name, 'wb') as f:
18 | f.write(r.content)
19 |
20 |
21 | def read_time_series(countries, filepath):
22 | df = pd.read_csv(filepath, na_filter=False)
23 |
24 | df = df.rename(columns={
25 | 'Province_State': 'Country/Region',
26 | 'Country_Region': 'Province/State',
27 | }).drop(columns=[
28 | 'Lat', 'Long', 'Province/State', 'UID', 'iso2', 'iso3',
29 | 'code3', 'FIPS', 'Admin2', 'Long_', 'Combined_Key'
30 | ], errors='ignore').groupby('Country/Region').sum()
31 |
32 | df = pd.merge(countries[['name']], df, how='inner', left_on=['name'], right_on=['Country/Region'])
33 | df.index = countries[countries['name'].isin(df['name'])].index
34 | df = df.drop(columns=['name'])
35 |
36 | return df
37 |
38 |
39 | def combine_time_series(confirmed, deaths):
40 | df = pd.DataFrame(
41 | [
42 | [date, country, num_confirmed, deaths[date][country]]
43 | for date in confirmed.columns
44 | for num_confirmed, country in zip(confirmed[date], confirmed.index)
45 | ],
46 | columns=['date', 'country', 'confirmed', 'deaths']
47 | )
48 |
49 | df['date'] = pd.to_datetime(df['date'], infer_datetime_format=True)
50 |
51 | return df
52 |
53 |
54 | def read_data(update=False):
55 | if update:
56 | update_data()
57 |
58 | countries = pd.read_csv('data/countries.csv', index_col='country')
59 |
60 | confirmed_global = read_time_series(countries, 'data/time_series/confirmed.csv')
61 | deaths_global = read_time_series(countries, 'data/time_series/deaths.csv')
62 | data_global = combine_time_series(confirmed_global, deaths_global)
63 |
64 | confirmed_ru = read_time_series(countries, 'data/time_series/confirmed_ru.csv')
65 | deaths_ru = read_time_series(countries, 'data/time_series/deaths_ru.csv')
66 | data_ru = combine_time_series(confirmed_ru, deaths_ru)
67 |
68 | data = data_global.append(data_ru)
69 | data = data[data['confirmed'] > 0]
70 | data = data.sort_values(by=['country', 'date']).reset_index(drop=True)
71 |
72 | data = data[data['date'] <= data[data['country'] == 'RU-MOW']['date'].max()]
73 |
74 | return countries, data
75 |
--------------------------------------------------------------------------------
/util/model_lgb.py:
--------------------------------------------------------------------------------
1 | import numpy as np
2 | import pandas as pd
3 | import lightgbm as lgb
4 |
5 | from util.features import add_features, get_Xy
6 |
7 |
8 | def predict_lgb(data, countries, model_params, predict_days, with_deaths=True):
9 | data_train, data_test = data_split_train_test(data, countries, predict_days)
10 |
11 | return train_and_predict_lgb(data_train, data_test, model_params, with_deaths)
12 |
13 |
14 | def predict_lgb_iterate(data, countries, model_params, predict_days, iterate_days, with_deaths=True):
15 | preds = pd.DataFrame()
16 |
17 | while True:
18 | preds = preds.append(predict_lgb(data, countries, model_params, iterate_days, with_deaths), ignore_index=True)
19 |
20 | if len(preds['date'].unique()) >= predict_days:
21 | break
22 |
23 | data = data.append(preds.rename(columns={
24 | 'prediction_confirmed': 'confirmed',
25 | 'prediction_deaths': 'deaths',
26 | }), ignore_index=True)
27 |
28 | max_date = preds['date'].unique()[predict_days - 1]
29 |
30 | return preds[preds['date'] <= max_date].reset_index(drop=True)
31 |
32 |
33 | def train_and_predict_lgb(data_train, data_test, model_params, with_deaths=True):
34 | preds = pd.DataFrame(columns=['date', 'country', 'prediction_confirmed', 'prediction_deaths'])
35 |
36 | for gap, date in enumerate(data_test['date'].unique(), 1):
37 | X_train, y_train = get_Xy(data_train, gap)
38 | X_test, _ = get_Xy(data_test[data_test['date'] == date], gap)
39 |
40 | model_confirmed, model_deaths = train_lgb_models(X_train, y_train, model_params, with_deaths)
41 | preds_confirmed = model_confirmed.predict(X_test)
42 |
43 | if with_deaths:
44 | preds_deaths = model_deaths.predict(X_test)
45 | else:
46 | preds_deaths = np.zeros(len(preds_confirmed))
47 |
48 | preds = preds.append(pd.DataFrame({
49 | 'date': date,
50 | 'country': data_test[data_test['date'] == date]['country'].values,
51 | 'prediction_confirmed': X_test['confirmed_prev'] + 10.0 ** preds_confirmed - 1.0,
52 | 'prediction_deaths': X_test['deaths_prev'] + 10.0 ** preds_deaths - 1.0,
53 | })).reset_index(drop=True)
54 |
55 | return preds
56 |
57 |
58 | def train_lgb_models(X, y, model_params, with_deaths=True):
59 | lgb_params = model_params.copy()
60 | lgb_params['objective'] = 'regression'
61 | lgb_params['metric'] = 'rmse'
62 | del lgb_params['regions_weight']
63 | del lgb_params['num_boost_round']
64 |
65 | weight = (X['is_region'] + 1.0).copy()
66 | weight.loc[weight > 1.0] = model_params['regions_weight']
67 |
68 | train_confirmed = lgb.Dataset(X, label=y['confirmed'], weight=weight)
69 | model_confirmed = lgb.train(lgb_params, train_set=train_confirmed, num_boost_round=model_params['num_boost_round'])
70 |
71 | if with_deaths:
72 | train_deaths = lgb.Dataset(X, label=y['deaths'])
73 | model_deaths = lgb.train(lgb_params, train_set=train_deaths, num_boost_round=model_params['num_boost_round'])
74 | else:
75 | model_deaths = None
76 |
77 | return model_confirmed, model_deaths
78 |
79 |
80 | def data_split_train_test(data, countries, predict_days):
81 | max_date = data['date'].max()
82 |
83 | data_test = pd.DataFrame([
84 | [max_date + pd.to_timedelta(d + 1, unit='d'), c, 0, 0]
85 | for c in data['country'].unique()
86 | for d in range(predict_days)
87 | ], columns=['date', 'country', 'confirmed', 'deaths'])
88 |
89 | data_full = data.append(data_test).sort_values(by=['country', 'date']).reset_index(drop=True).copy()
90 | add_features(data_full, countries)
91 |
92 | data_train = data_full[(data_full['date'] <= max_date) & (data_full['confirmed'] > 0)].reset_index(drop=True)
93 | data_test = data_full[data_full['date'] > max_date].reset_index(drop=True)
94 |
95 | return data_train, data_test
96 |
--------------------------------------------------------------------------------
/notebooks/parsers/MobilityYandex.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "code",
5 | "execution_count": 1,
6 | "metadata": {},
7 | "outputs": [
8 | {
9 | "name": "stdout",
10 | "output_type": "stream",
11 | "text": [
12 | "/home/tyz910/src/sberbank-covid19\n"
13 | ]
14 | }
15 | ],
16 | "source": [
17 | "cd '../..'"
18 | ]
19 | },
20 | {
21 | "cell_type": "code",
22 | "execution_count": 2,
23 | "metadata": {},
24 | "outputs": [],
25 | "source": [
26 | "import re\n",
27 | "import json\n",
28 | "import requests\n",
29 | "import pandas as pd\n",
30 | "from datetime import datetime\n",
31 | "\n",
32 | "countries = pd.read_csv('data/countries.csv')\n",
33 | "city_map = {row['region_center']: row['country'] for i, row in countries[countries['is_region'] == 1].iterrows()}\n",
34 | "\n",
35 | "body = requests.get('https://yandex.ru/web-maps/covid19/isolation').content\n",
36 | "data = json.loads(re.compile(r'class=\"config-view\">(.+?)<').search(body.decode('utf-8'))[1])"
37 | ]
38 | },
39 | {
40 | "cell_type": "code",
41 | "execution_count": 3,
42 | "metadata": {},
43 | "outputs": [
44 | {
45 | "data": {
46 | "text/html": [
47 | "
\n",
48 | "\n",
61 | "
\n",
62 | " \n",
63 | " \n",
64 | " | \n",
65 | " date | \n",
66 | " country | \n",
67 | " isolation | \n",
68 | "
\n",
69 | " \n",
70 | " \n",
71 | " \n",
72 | " | 0 | \n",
73 | " 2020-02-23 | \n",
74 | " RU-SPE | \n",
75 | " 2.5 | \n",
76 | "
\n",
77 | " \n",
78 | " | 1 | \n",
79 | " 2020-02-24 | \n",
80 | " RU-SPE | \n",
81 | " 2.6 | \n",
82 | "
\n",
83 | " \n",
84 | " | 2 | \n",
85 | " 2020-02-25 | \n",
86 | " RU-SPE | \n",
87 | " 0.4 | \n",
88 | "
\n",
89 | " \n",
90 | " | 3 | \n",
91 | " 2020-02-26 | \n",
92 | " RU-SPE | \n",
93 | " 0.4 | \n",
94 | "
\n",
95 | " \n",
96 | " | 4 | \n",
97 | " 2020-02-27 | \n",
98 | " RU-SPE | \n",
99 | " 0.4 | \n",
100 | "
\n",
101 | " \n",
102 | "
\n",
103 | "
"
104 | ],
105 | "text/plain": [
106 | " date country isolation\n",
107 | "0 2020-02-23 RU-SPE 2.5\n",
108 | "1 2020-02-24 RU-SPE 2.6\n",
109 | "2 2020-02-25 RU-SPE 0.4\n",
110 | "3 2020-02-26 RU-SPE 0.4\n",
111 | "4 2020-02-27 RU-SPE 0.4"
112 | ]
113 | },
114 | "execution_count": 3,
115 | "metadata": {},
116 | "output_type": "execute_result"
117 | }
118 | ],
119 | "source": [
120 | "def ts_to_date(ts):\n",
121 | " return datetime.utcfromtimestamp(ts + 3 * 60 * 60).strftime('%Y-%m-%d')\n",
122 | "\n",
123 | "\n",
124 | "result = []\n",
125 | "\n",
126 | "for c in data['covidData']['cities']:\n",
127 | " if c['name'] in city_map:\n",
128 | " country = city_map[c['name']]\n",
129 | " result.append(\n",
130 | " pd.DataFrame(\n",
131 | " [[ts_to_date(r['ts']), country, r['value']] for r in c['histogramDays']], \n",
132 | " columns=['date', 'country', 'isolation'],\n",
133 | " )\n",
134 | " )\n",
135 | "\n",
136 | "result = pd.concat(result).reset_index(drop=True)\n",
137 | "result.to_csv('data/mobility-yandex.csv', index=False)\n",
138 | "result.head()"
139 | ]
140 | }
141 | ],
142 | "metadata": {
143 | "kernelspec": {
144 | "display_name": "Python 3",
145 | "language": "python",
146 | "name": "python3"
147 | },
148 | "language_info": {
149 | "codemirror_mode": {
150 | "name": "ipython",
151 | "version": 3
152 | },
153 | "file_extension": ".py",
154 | "mimetype": "text/x-python",
155 | "name": "python",
156 | "nbconvert_exporter": "python",
157 | "pygments_lexer": "ipython3",
158 | "version": "3.6.10"
159 | }
160 | },
161 | "nbformat": 4,
162 | "nbformat_minor": 4
163 | }
164 |
--------------------------------------------------------------------------------
/notebooks/parsers/QuarantineDates.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "code",
5 | "execution_count": 1,
6 | "metadata": {},
7 | "outputs": [
8 | {
9 | "name": "stdout",
10 | "output_type": "stream",
11 | "text": [
12 | "/home/tyz910/src/sberbank-covid19\n"
13 | ]
14 | }
15 | ],
16 | "source": [
17 | "%cd '../..'"
18 | ]
19 | },
20 | {
21 | "cell_type": "code",
22 | "execution_count": 2,
23 | "metadata": {},
24 | "outputs": [],
25 | "source": [
26 | "import re\n",
27 | "import requests\n",
28 | "import pandas as pd\n",
29 | "from bs4 import BeautifulSoup\n",
30 | "\n",
31 | "countries = pd.read_csv('data/countries.csv')"
32 | ]
33 | },
34 | {
35 | "cell_type": "code",
36 | "execution_count": 3,
37 | "metadata": {},
38 | "outputs": [],
39 | "source": [
40 | "URL = \"https://en.wikipedia.org/wiki/National_responses_to_the_2019%E2%80%9320_coronavirus_pandemic\"\n",
41 | "page = requests.get(URL)\n",
42 | "soup = BeautifulSoup(page.text)\n",
43 | "tables = soup.findAll(\"table\", {\"class\": \"wikitable\"})"
44 | ]
45 | },
46 | {
47 | "cell_type": "code",
48 | "execution_count": 4,
49 | "metadata": {},
50 | "outputs": [
51 | {
52 | "data": {
53 | "text/html": [
54 | "\n",
55 | "\n",
68 | "
\n",
69 | " \n",
70 | " \n",
71 | " | \n",
72 | " date | \n",
73 | " level | \n",
74 | "
\n",
75 | " \n",
76 | " | country | \n",
77 | " | \n",
78 | " | \n",
79 | "
\n",
80 | " \n",
81 | " \n",
82 | " \n",
83 | " | ALB | \n",
84 | " 2020-03-13 | \n",
85 | " National | \n",
86 | "
\n",
87 | " \n",
88 | " | ARE | \n",
89 | " 2020-03-26 | \n",
90 | " National | \n",
91 | "
\n",
92 | " \n",
93 | " | ARG | \n",
94 | " 2020-03-19 | \n",
95 | " National | \n",
96 | "
\n",
97 | " \n",
98 | " | ARM | \n",
99 | " 2020-03-24 | \n",
100 | " National | \n",
101 | "
\n",
102 | " \n",
103 | " | AUS | \n",
104 | " 2020-03-23 | \n",
105 | " National | \n",
106 | "
\n",
107 | " \n",
108 | " | ... | \n",
109 | " ... | \n",
110 | " ... | \n",
111 | "
\n",
112 | " \n",
113 | " | TUR | \n",
114 | " 2020-04-23 | \n",
115 | " National | \n",
116 | "
\n",
117 | " \n",
118 | " | UKR | \n",
119 | " 2020-03-17 | \n",
120 | " National | \n",
121 | "
\n",
122 | " \n",
123 | " | VEN | \n",
124 | " 2020-03-17 | \n",
125 | " National | \n",
126 | "
\n",
127 | " \n",
128 | " | ZAF | \n",
129 | " 2020-03-26 | \n",
130 | " National | \n",
131 | "
\n",
132 | " \n",
133 | " | ZWE | \n",
134 | " 2020-03-30 | \n",
135 | " National | \n",
136 | "
\n",
137 | " \n",
138 | "
\n",
139 | "
85 rows × 2 columns
\n",
140 | "
"
141 | ],
142 | "text/plain": [
143 | " date level\n",
144 | "country \n",
145 | "ALB 2020-03-13 National\n",
146 | "ARE 2020-03-26 National\n",
147 | "ARG 2020-03-19 National\n",
148 | "ARM 2020-03-24 National\n",
149 | "AUS 2020-03-23 National\n",
150 | "... ... ...\n",
151 | "TUR 2020-04-23 National\n",
152 | "UKR 2020-03-17 National\n",
153 | "VEN 2020-03-17 National\n",
154 | "ZAF 2020-03-26 National\n",
155 | "ZWE 2020-03-30 National\n",
156 | "\n",
157 | "[85 rows x 2 columns]"
158 | ]
159 | },
160 | "execution_count": 4,
161 | "metadata": {},
162 | "output_type": "execute_result"
163 | }
164 | ],
165 | "source": [
166 | "data = []\n",
167 | "\n",
168 | "def get_text(col):\n",
169 | " return re.sub(r\"\\[[^]]+\\]\", \"\", col.text.strip())\n",
170 | "\n",
171 | "for row in tables[0].findAll(\"tr\"):\n",
172 | " columns = row.findAll(\"td\")\n",
173 | " if len(columns) < 4:\n",
174 | " continue\n",
175 | "\n",
176 | " if len(columns) == 5:\n",
177 | " country = get_text(columns[0])\n",
178 | " place = get_text(columns[1])\n",
179 | " columns = columns[2:]\n",
180 | " elif \"colspan\" in columns[0].attrs:\n",
181 | " country = get_text(columns[0])\n",
182 | " place = \"\"\n",
183 | " columns = columns[1:]\n",
184 | " else:\n",
185 | " place = get_text(columns[0])\n",
186 | " columns = columns[1:]\n",
187 | " \n",
188 | " start = get_text(columns[0])\n",
189 | " end = get_text(columns[1])\n",
190 | " level = get_text(columns[2])\n",
191 | " \n",
192 | " data.append([country, place, start, end, level])\n",
193 | " \n",
194 | "df = pd.DataFrame(data, columns=[\"Country\", \"Place\", \"Start date\", \"End date\", \"Level\"])\n",
195 | "df = pd.merge(df, countries, left_on='Country', right_on='name', how='inner').groupby('country')[['Start date', 'Level']].first()\n",
196 | "df = df.rename(columns={\n",
197 | " 'Start date': 'date',\n",
198 | " 'Level': 'level',\n",
199 | "})\n",
200 | "\n",
201 | "df.to_csv(\"data/quarantine.csv\")\n",
202 | "df"
203 | ]
204 | }
205 | ],
206 | "metadata": {
207 | "kernelspec": {
208 | "display_name": "Python 3",
209 | "language": "python",
210 | "name": "python3"
211 | },
212 | "language_info": {
213 | "codemirror_mode": {
214 | "name": "ipython",
215 | "version": 3
216 | },
217 | "file_extension": ".py",
218 | "mimetype": "text/x-python",
219 | "name": "python",
220 | "nbconvert_exporter": "python",
221 | "pygments_lexer": "ipython3",
222 | "version": "3.6.10"
223 | }
224 | },
225 | "nbformat": 4,
226 | "nbformat_minor": 4
227 | }
228 |
--------------------------------------------------------------------------------
/notebooks/visualizations/BarChartRace.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "code",
5 | "execution_count": 1,
6 | "metadata": {},
7 | "outputs": [
8 | {
9 | "name": "stdout",
10 | "output_type": "stream",
11 | "text": [
12 | "/home/tyz910/src/sberbank-covid19\n"
13 | ]
14 | }
15 | ],
16 | "source": [
17 | "%cd '../..'"
18 | ]
19 | },
20 | {
21 | "cell_type": "code",
22 | "execution_count": 2,
23 | "metadata": {},
24 | "outputs": [
25 | {
26 | "name": "stdout",
27 | "output_type": "stream",
28 | "text": [
29 | "confirmed.csv loaded\n",
30 | "deaths.csv loaded\n",
31 | "confirmed_ru.csv loaded\n",
32 | "deaths_ru.csv loaded\n"
33 | ]
34 | }
35 | ],
36 | "source": [
37 | "import pandas as pd\n",
38 | "from util.data import read_data\n",
39 | "\n",
40 | "countries, data = read_data(update=True)\n",
41 | "regions_ru = pd.read_csv('data/regions_ru.csv', index_col='country')"
42 | ]
43 | },
44 | {
45 | "cell_type": "code",
46 | "execution_count": 3,
47 | "metadata": {},
48 | "outputs": [
49 | {
50 | "data": {
51 | "text/html": [
52 | "\n",
53 | "\n",
66 | "
\n",
67 | " \n",
68 | " \n",
69 | " | \n",
70 | " name | \n",
71 | " district | \n",
72 | " flag | \n",
73 | " 25.03 | \n",
74 | " 26.03 | \n",
75 | " 27.03 | \n",
76 | " 28.03 | \n",
77 | " 29.03 | \n",
78 | " 30.03 | \n",
79 | " 31.03 | \n",
80 | " ... | \n",
81 | " 15.04 | \n",
82 | " 16.04 | \n",
83 | " 17.04 | \n",
84 | " 18.04 | \n",
85 | " 19.04 | \n",
86 | " 20.04 | \n",
87 | " 21.04 | \n",
88 | " 22.04 | \n",
89 | " 23.04 | \n",
90 | " 24.04 | \n",
91 | "
\n",
92 | " \n",
93 | " | country | \n",
94 | " | \n",
95 | " | \n",
96 | " | \n",
97 | " | \n",
98 | " | \n",
99 | " | \n",
100 | " | \n",
101 | " | \n",
102 | " | \n",
103 | " | \n",
104 | " | \n",
105 | " | \n",
106 | " | \n",
107 | " | \n",
108 | " | \n",
109 | " | \n",
110 | " | \n",
111 | " | \n",
112 | " | \n",
113 | " | \n",
114 | " | \n",
115 | "
\n",
116 | " \n",
117 | " \n",
118 | " \n",
119 | " | RU-AL | \n",
120 | " Республика Алтай | \n",
121 | " Сибирский ФО | \n",
122 | " https://upload.wikimedia.org/wikipedia/commons... | \n",
123 | " 0.0 | \n",
124 | " 0.0 | \n",
125 | " 0.0 | \n",
126 | " 0.0 | \n",
127 | " 0.0 | \n",
128 | " 0.0 | \n",
129 | " 0.0 | \n",
130 | " ... | \n",
131 | " 0.0 | \n",
132 | " 0.0 | \n",
133 | " 1.0 | \n",
134 | " 2.0 | \n",
135 | " 2.0 | \n",
136 | " 4.0 | \n",
137 | " 8.0 | \n",
138 | " 8.0 | \n",
139 | " 9.0 | \n",
140 | " 9.0 | \n",
141 | "
\n",
142 | " \n",
143 | " | RU-ALT | \n",
144 | " Алтайский край | \n",
145 | " Сибирский ФО | \n",
146 | " https://upload.wikimedia.org/wikipedia/commons... | \n",
147 | " 0.0 | \n",
148 | " 0.0 | \n",
149 | " 0.0 | \n",
150 | " 0.0 | \n",
151 | " 0.0 | \n",
152 | " 1.0 | \n",
153 | " 2.0 | \n",
154 | " ... | \n",
155 | " 39.0 | \n",
156 | " 48.0 | \n",
157 | " 53.0 | \n",
158 | " 63.0 | \n",
159 | " 72.0 | \n",
160 | " 84.0 | \n",
161 | " 127.0 | \n",
162 | " 136.0 | \n",
163 | " 144.0 | \n",
164 | " 152.0 | \n",
165 | "
\n",
166 | " \n",
167 | " | RU-AMU | \n",
168 | " Амурская область | \n",
169 | " Дальневосточный ФО | \n",
170 | " https://upload.wikimedia.org/wikipedia/commons... | \n",
171 | " 0.0 | \n",
172 | " 0.0 | \n",
173 | " 0.0 | \n",
174 | " 0.0 | \n",
175 | " 1.0 | \n",
176 | " 1.0 | \n",
177 | " 1.0 | \n",
178 | " ... | \n",
179 | " 6.0 | \n",
180 | " 9.0 | \n",
181 | " 11.0 | \n",
182 | " 14.0 | \n",
183 | " 16.0 | \n",
184 | " 20.0 | \n",
185 | " 20.0 | \n",
186 | " 23.0 | \n",
187 | " 25.0 | \n",
188 | " 28.0 | \n",
189 | "
\n",
190 | " \n",
191 | " | RU-ARK | \n",
192 | " Архангельская область | \n",
193 | " Северо-Западный ФО | \n",
194 | " https://upload.wikimedia.org/wikipedia/commons... | \n",
195 | " 3.0 | \n",
196 | " 3.0 | \n",
197 | " 3.0 | \n",
198 | " 3.0 | \n",
199 | " 3.0 | \n",
200 | " 7.0 | \n",
201 | " 7.0 | \n",
202 | " ... | \n",
203 | " 32.0 | \n",
204 | " 33.0 | \n",
205 | " 34.0 | \n",
206 | " 39.0 | \n",
207 | " 107.0 | \n",
208 | " 114.0 | \n",
209 | " 118.0 | \n",
210 | " 120.0 | \n",
211 | " 123.0 | \n",
212 | " 137.0 | \n",
213 | "
\n",
214 | " \n",
215 | " | RU-AST | \n",
216 | " Астраханская область | \n",
217 | " Южный ФО | \n",
218 | " https://upload.wikimedia.org/wikipedia/commons... | \n",
219 | " 0.0 | \n",
220 | " 0.0 | \n",
221 | " 0.0 | \n",
222 | " 0.0 | \n",
223 | " 0.0 | \n",
224 | " 0.0 | \n",
225 | " 2.0 | \n",
226 | " ... | \n",
227 | " 47.0 | \n",
228 | " 60.0 | \n",
229 | " 64.0 | \n",
230 | " 99.0 | \n",
231 | " 123.0 | \n",
232 | " 136.0 | \n",
233 | " 137.0 | \n",
234 | " 148.0 | \n",
235 | " 165.0 | \n",
236 | " 186.0 | \n",
237 | "
\n",
238 | " \n",
239 | "
\n",
240 | "
5 rows × 34 columns
\n",
241 | "
"
242 | ],
243 | "text/plain": [
244 | " name district \\\n",
245 | "country \n",
246 | "RU-AL Республика Алтай Сибирский ФО \n",
247 | "RU-ALT Алтайский край Сибирский ФО \n",
248 | "RU-AMU Амурская область Дальневосточный ФО \n",
249 | "RU-ARK Архангельская область Северо-Западный ФО \n",
250 | "RU-AST Астраханская область Южный ФО \n",
251 | "\n",
252 | " flag 25.03 26.03 \\\n",
253 | "country \n",
254 | "RU-AL https://upload.wikimedia.org/wikipedia/commons... 0.0 0.0 \n",
255 | "RU-ALT https://upload.wikimedia.org/wikipedia/commons... 0.0 0.0 \n",
256 | "RU-AMU https://upload.wikimedia.org/wikipedia/commons... 0.0 0.0 \n",
257 | "RU-ARK https://upload.wikimedia.org/wikipedia/commons... 3.0 3.0 \n",
258 | "RU-AST https://upload.wikimedia.org/wikipedia/commons... 0.0 0.0 \n",
259 | "\n",
260 | " 27.03 28.03 29.03 30.03 31.03 ... 15.04 16.04 17.04 18.04 \\\n",
261 | "country ... \n",
262 | "RU-AL 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 1.0 2.0 \n",
263 | "RU-ALT 0.0 0.0 0.0 1.0 2.0 ... 39.0 48.0 53.0 63.0 \n",
264 | "RU-AMU 0.0 0.0 1.0 1.0 1.0 ... 6.0 9.0 11.0 14.0 \n",
265 | "RU-ARK 3.0 3.0 3.0 7.0 7.0 ... 32.0 33.0 34.0 39.0 \n",
266 | "RU-AST 0.0 0.0 0.0 0.0 2.0 ... 47.0 60.0 64.0 99.0 \n",
267 | "\n",
268 | " 19.04 20.04 21.04 22.04 23.04 24.04 \n",
269 | "country \n",
270 | "RU-AL 2.0 4.0 8.0 8.0 9.0 9.0 \n",
271 | "RU-ALT 72.0 84.0 127.0 136.0 144.0 152.0 \n",
272 | "RU-AMU 16.0 20.0 20.0 23.0 25.0 28.0 \n",
273 | "RU-ARK 107.0 114.0 118.0 120.0 123.0 137.0 \n",
274 | "RU-AST 123.0 136.0 137.0 148.0 165.0 186.0 \n",
275 | "\n",
276 | "[5 rows x 34 columns]"
277 | ]
278 | },
279 | "execution_count": 3,
280 | "metadata": {},
281 | "output_type": "execute_result"
282 | }
283 | ],
284 | "source": [
285 | "FROM_DATE = '2020-03-25'\n",
286 | "EXCLUDE_COUNTRIES = ['RU-MOW', 'RU-MOS', 'RU-SPE']\n",
287 | "\n",
288 | "chart_data = data[data['country'].isin(regions_ru.index)][['date', 'country', 'confirmed']].copy()\n",
289 | "chart_data = chart_data[chart_data['date'] >= FROM_DATE].sort_values(by='date')\n",
290 | "chart_data['date'] = chart_data['date'].dt.strftime('%d.%m')\n",
291 | "\n",
292 | "chart_data = chart_data.pivot(index='country', columns='date')['confirmed'][chart_data['date'].unique()]\n",
293 | "chart_data = regions_ru.join(chart_data).drop(EXCLUDE_COUNTRIES).fillna(0)\n",
294 | "\n",
295 | "# export to https://flourish.studio/\n",
296 | "chart_data.to_csv('chart_data.csv', index=False)\n",
297 | "\n",
298 | "chart_data.head()"
299 | ]
300 | },
301 | {
302 | "cell_type": "markdown",
303 | "metadata": {},
304 | "source": [
305 | "https://public.flourish.studio/visualisation/2027941/\n",
306 | "\n",
307 | "[](https://public.flourish.studio/visualisation/2027941/)"
308 | ]
309 | }
310 | ],
311 | "metadata": {
312 | "kernelspec": {
313 | "display_name": "Python 3",
314 | "language": "python",
315 | "name": "python3"
316 | },
317 | "language_info": {
318 | "codemirror_mode": {
319 | "name": "ipython",
320 | "version": 3
321 | },
322 | "file_extension": ".py",
323 | "mimetype": "text/x-python",
324 | "name": "python",
325 | "nbconvert_exporter": "python",
326 | "pygments_lexer": "ipython3",
327 | "version": "3.6.10"
328 | }
329 | },
330 | "nbformat": 4,
331 | "nbformat_minor": 4
332 | }
333 |
--------------------------------------------------------------------------------
/data/regions_ru.csv:
--------------------------------------------------------------------------------
1 | country,name,district,flag
2 | RU-AL,Республика Алтай,Сибирский ФО,https://upload.wikimedia.org/wikipedia/commons/thumb/f/ff/Flag_of_Altai_Republic.svg/1920px-Flag_of_Altai_Republic.svg.png
3 | RU-ALT,Алтайский край,Сибирский ФО,https://upload.wikimedia.org/wikipedia/commons/thumb/4/4b/Flag_of_Altai_Krai.svg/1920px-Flag_of_Altai_Krai.svg.png
4 | RU-AMU,Амурская область,Дальневосточный ФО,https://upload.wikimedia.org/wikipedia/commons/thumb/7/7a/Flag_of_Amur_Oblast.svg/1920px-Flag_of_Amur_Oblast.svg.png
5 | RU-ARK,Архангельская область,Северо-Западный ФО,https://upload.wikimedia.org/wikipedia/commons/thumb/1/16/Flag_of_Arkhangelsk_Oblast.svg/1920px-Flag_of_Arkhangelsk_Oblast.svg.png
6 | RU-AST,Астраханская область,Южный ФО,https://upload.wikimedia.org/wikipedia/commons/thumb/8/87/Flag_of_Astrakhan_Oblast.svg/1280px-Flag_of_Astrakhan_Oblast.svg.png
7 | RU-BEL,Белгородская область,Центральный ФО,https://upload.wikimedia.org/wikipedia/commons/thumb/2/2b/Flag_of_Belgorod_Oblast.svg/1920px-Flag_of_Belgorod_Oblast.svg.png
8 | RU-BRY,Брянская область,Центральный ФО,https://upload.wikimedia.org/wikipedia/commons/thumb/2/2b/Flag_of_Bryansk_Oblast.svg/1920px-Flag_of_Bryansk_Oblast.svg.png
9 | RU-CE,Чеченская Республика,Северо-Кавказский ФО,https://upload.wikimedia.org/wikipedia/commons/thumb/1/13/Flag_of_the_Chechen_Republic.svg/1920px-Flag_of_the_Chechen_Republic.svg.png
10 | RU-CHE,Челябинская область,Уральский ФО,https://upload.wikimedia.org/wikipedia/commons/thumb/c/ce/Flag_of_Chelyabinsk_Oblast.svg/1920px-Flag_of_Chelyabinsk_Oblast.svg.png
11 | RU-CHU,Чукотский АО,Дальневосточный ФО,https://upload.wikimedia.org/wikipedia/commons/thumb/a/a0/Flag_of_Chukotka.svg/1920px-Flag_of_Chukotka.svg.png
12 | RU-KHA,Хабаровский край,Дальневосточный ФО,https://upload.wikimedia.org/wikipedia/commons/thumb/4/4f/Flag_of_Khabarovsk_Krai.svg/1920px-Flag_of_Khabarovsk_Krai.svg.png
13 | RU-KHM,Ханты-Мансийский АО-Югра,Уральский ФО,https://upload.wikimedia.org/wikipedia/commons/thumb/7/70/Flag_of_Yugra.svg/1920px-Flag_of_Yugra.svg.png
14 | RU-IN,Республика Ингушетия,Северо-Кавказский ФО,https://upload.wikimedia.org/wikipedia/commons/thumb/0/00/Flag_of_Ingushetia.svg/1920px-Flag_of_Ingushetia.svg.png
15 | RU-IRK,Иркутская область,Сибирский ФО,https://upload.wikimedia.org/wikipedia/commons/thumb/1/14/Flag_of_Irkutsk_Oblast.svg/1920px-Flag_of_Irkutsk_Oblast.svg.png
16 | RU-IVA,Ивановская область,Центральный ФО,https://upload.wikimedia.org/wikipedia/commons/thumb/5/5b/Flag_of_Ivanovo_Oblast.svg/1920px-Flag_of_Ivanovo_Oblast.svg.png
17 | RU-YEV,Еврейская авт. область,Дальневосточный ФО,https://upload.wikimedia.org/wikipedia/commons/thumb/0/0e/Flag_of_the_Jewish_Autonomous_Oblast.svg/1920px-Flag_of_the_Jewish_Autonomous_Oblast.svg.png
18 | RU-KGD,Калининградская область,Северо-Западный ФО,https://upload.wikimedia.org/wikipedia/commons/thumb/e/e4/Flag_of_Kaliningrad_Oblast.svg/1920px-Flag_of_Kaliningrad_Oblast.svg.png
19 | RU-KLU,Калужская область,Центральный ФО,https://upload.wikimedia.org/wikipedia/commons/thumb/e/ed/Flag_of_Kaluga_Oblast.svg/1920px-Flag_of_Kaluga_Oblast.svg.png
20 | RU-KAM,Камчатский край,Дальневосточный ФО,https://upload.wikimedia.org/wikipedia/commons/thumb/a/a7/Flag_of_Kamchatka_Krai.svg/1920px-Flag_of_Kamchatka_Krai.svg.png
21 | RU-KEM,Кемеровская область,Сибирский ФО,https://upload.wikimedia.org/wikipedia/commons/thumb/f/fd/Flag_of_Kemerovo_oblast.svg/1920px-Flag_of_Kemerovo_oblast.svg.png
22 | RU-KIR,Кировская область,Приволжский ФО,https://upload.wikimedia.org/wikipedia/commons/thumb/4/41/Flag_of_Kirov_Oblast.svg/1920px-Flag_of_Kirov_Oblast.svg.png
23 | RU-KO,Республика Коми,Северо-Западный ФО,https://upload.wikimedia.org/wikipedia/commons/thumb/5/54/Flag_of_Komi.svg/1920px-Flag_of_Komi.svg.png
24 | RU-KOS,Костромская область,Центральный ФО,https://upload.wikimedia.org/wikipedia/commons/thumb/2/2c/Flag_of_Kostroma_Oblast.svg/1920px-Flag_of_Kostroma_Oblast.svg.png
25 | RU-KDA,Краснодарский край,Южный ФО,https://upload.wikimedia.org/wikipedia/commons/thumb/a/a7/Flag_of_Krasnodar_Krai.svg/1920px-Flag_of_Krasnodar_Krai.svg.png
26 | RU-KYA,Красноярский край,Сибирский ФО,https://upload.wikimedia.org/wikipedia/commons/thumb/2/2d/Flag_of_Krasnoyarsk_Krai.svg/1920px-Flag_of_Krasnoyarsk_Krai.svg.png
27 | RU-KGN,Курганская область,Уральский ФО,https://upload.wikimedia.org/wikipedia/commons/thumb/9/92/Flag_of_Kurgan_Oblast.svg/1920px-Flag_of_Kurgan_Oblast.svg.png
28 | RU-KRS,Курская область,Центральный ФО,https://upload.wikimedia.org/wikipedia/commons/thumb/7/70/Flag_of_Kursk_Oblast.svg/1920px-Flag_of_Kursk_Oblast.svg.png
29 | RU-LEN,Ленинградская область,Северо-Западный ФО,https://upload.wikimedia.org/wikipedia/commons/thumb/6/66/Flag_of_Leningrad_Oblast.svg/1920px-Flag_of_Leningrad_Oblast.svg.png
30 | RU-LIP,Липецкая область,Центральный ФО,https://upload.wikimedia.org/wikipedia/commons/thumb/3/36/Flag_of_Lipetsk_Oblast.svg/1920px-Flag_of_Lipetsk_Oblast.svg.png
31 | RU-MAG,Магаданская область,Дальневосточный ФО,https://upload.wikimedia.org/wikipedia/commons/thumb/2/29/Flag_of_Magadan_Oblast.svg/1920px-Flag_of_Magadan_Oblast.svg.png
32 | RU-MOW,г. Москва,Центральный ФО,https://upload.wikimedia.org/wikipedia/commons/thumb/0/03/Flag_of_Moscow%2C_Russia.svg/1920px-Flag_of_Moscow%2C_Russia.svg.png
33 | RU-MOS,Московская область,Центральный ФО,https://upload.wikimedia.org/wikipedia/commons/thumb/4/48/Flag_of_Moscow_oblast.svg/1280px-Flag_of_Moscow_oblast.svg.png
34 | RU-MUR,Мурманская область,Северо-Западный ФО,https://upload.wikimedia.org/wikipedia/commons/thumb/3/3b/Flag_of_Murmansk_Oblast.svg/1280px-Flag_of_Murmansk_Oblast.svg.png
35 | RU-NEN,Ненецкий АО,Северо-Западный ФО,https://upload.wikimedia.org/wikipedia/commons/thumb/1/15/Flag_of_Nenets_Autonomous_District.svg/1280px-Flag_of_Nenets_Autonomous_District.svg.png
36 | RU-NIZ,Нижегородская область,Приволжский ФО,https://upload.wikimedia.org/wikipedia/commons/thumb/0/04/Flag_of_Nizhny_Novgorod_Region.svg/1280px-Flag_of_Nizhny_Novgorod_Region.svg.png
37 | RU-NGR,Новгородская область,Северо-Западный ФО,https://upload.wikimedia.org/wikipedia/commons/thumb/6/68/Flag_of_Novgorod_Oblast.svg/1280px-Flag_of_Novgorod_Oblast.svg.png
38 | RU-NVS,Новосибирская область,Сибирский ФО,https://upload.wikimedia.org/wikipedia/commons/thumb/3/39/Flag_of_Novosibirsk_oblast.svg/1280px-Flag_of_Novosibirsk_oblast.svg.png
39 | RU-OMS,Омская область,Сибирский ФО,https://upload.wikimedia.org/wikipedia/commons/thumb/6/60/Flag_of_Omsk_Oblast.svg/1280px-Flag_of_Omsk_Oblast.svg.png
40 | RU-ORL,Орловская область,Центральный ФО,https://upload.wikimedia.org/wikipedia/commons/thumb/0/05/Flag_of_Oryol_Oblast.svg/1280px-Flag_of_Oryol_Oblast.svg.png
41 | RU-ORE,Оренбургская область,Приволжский ФО,https://upload.wikimedia.org/wikipedia/commons/thumb/d/d6/Flag_of_Orenburg_Oblast.svg/1280px-Flag_of_Orenburg_Oblast.svg.png
42 | RU-PNZ,Пензенская область,Приволжский ФО,https://upload.wikimedia.org/wikipedia/commons/thumb/d/da/Flag_of_Penza_Oblast.svg/1920px-Flag_of_Penza_Oblast.svg.png
43 | RU-PER,Пермский край,Приволжский ФО,https://upload.wikimedia.org/wikipedia/commons/thumb/b/b5/Flag_of_Perm_Krai.svg/1280px-Flag_of_Perm_Krai.svg.png
44 | RU-PRI,Приморский край,Дальневосточный ФО,https://upload.wikimedia.org/wikipedia/commons/thumb/3/38/Flag_of_Primorsky_Krai.svg/1280px-Flag_of_Primorsky_Krai.svg.png
45 | RU-PSK,Псковская область,Северо-Западный ФО,https://upload.wikimedia.org/wikipedia/commons/thumb/e/ef/Flag_of_Pskov_Oblast.svg/1280px-Flag_of_Pskov_Oblast.svg.png
46 | RU-AD,Республика Адыгея,Южный ФО,https://upload.wikimedia.org/wikipedia/commons/thumb/1/16/Flag_of_Adygea.svg/1920px-Flag_of_Adygea.svg.png
47 | RU-BA,Республика Башкортостан,Приволжский ФО,https://upload.wikimedia.org/wikipedia/commons/thumb/3/3d/Flag_of_Bashkortostan.svg/1280px-Flag_of_Bashkortostan.svg.png
48 | RU-BU,Республика Бурятия,Дальневосточный ФО,https://upload.wikimedia.org/wikipedia/commons/thumb/6/68/Flag_of_Buryatia.svg/1920px-Flag_of_Buryatia.svg.png
49 | RU-CU,Чувашская Республика,Приволжский ФО,https://upload.wikimedia.org/wikipedia/commons/thumb/d/d7/Flag_of_Chuvashia.svg/1920px-Flag_of_Chuvashia.svg.png
50 | UA-43,Республика Крым,Южный ФО,https://upload.wikimedia.org/wikipedia/commons/thumb/a/aa/Flag_of_Crimea.svg/1920px-Flag_of_Crimea.svg.png
51 | RU-DA,Республика Дагестан,Северо-Кавказский ФО,https://upload.wikimedia.org/wikipedia/commons/thumb/c/c3/Flag_of_Dagestan.svg/1280px-Flag_of_Dagestan.svg.png
52 | RU-KK,Республика Хакасия,Сибирский ФО,https://upload.wikimedia.org/wikipedia/commons/thumb/e/ec/Flag_of_Khakassia.svg/1920px-Flag_of_Khakassia.svg.png
53 | RU-KB,Кабардино-Балкарская Респ.,Северо-Кавказский ФО,https://upload.wikimedia.org/wikipedia/commons/thumb/d/d8/Flag_of_Kabardino-Balkaria.svg/1280px-Flag_of_Kabardino-Balkaria.svg.png
54 | RU-KL,Республика Калмыкия,Южный ФО,https://upload.wikimedia.org/wikipedia/commons/thumb/9/9f/Flag_of_Kalmykia.svg/1920px-Flag_of_Kalmykia.svg.png
55 | RU-KC,Карачаево-Черкесская Респ.,Северо-Кавказский ФО,https://upload.wikimedia.org/wikipedia/commons/thumb/5/59/Flag_of_Karachay-Cherkessia.svg/1920px-Flag_of_Karachay-Cherkessia.svg.png
56 | RU-KR,Республика Карелия,Северо-Западный ФО,https://upload.wikimedia.org/wikipedia/commons/thumb/6/69/Flag_of_Karelia.svg/1280px-Flag_of_Karelia.svg.png
57 | RU-ME,Республика Марий Эл,Приволжский ФО,https://upload.wikimedia.org/wikipedia/commons/thumb/a/a7/Flag_of_Mari_El.svg/1280px-Flag_of_Mari_El.svg.png
58 | RU-MO,Республика Мордовия,Приволжский ФО,https://upload.wikimedia.org/wikipedia/commons/thumb/2/2f/Flag_of_Mordovia.svg/1280px-Flag_of_Mordovia.svg.png
59 | RU-SE,Респ. Сев. Осетия-Алания,Северо-Кавказский ФО,https://upload.wikimedia.org/wikipedia/commons/thumb/1/1c/Flag_of_North_Ossetia.svg/1920px-Flag_of_North_Ossetia.svg.png
60 | RU-TA,Республика Татарстан,Уральский ФО,https://upload.wikimedia.org/wikipedia/commons/thumb/2/28/Flag_of_Tatarstan.svg/1920px-Flag_of_Tatarstan.svg.png
61 | RU-TY,Республика Тыва,Сибирский ФО,https://upload.wikimedia.org/wikipedia/commons/thumb/7/77/Flag_of_Tuva.svg/1280px-Flag_of_Tuva.svg.png
62 | RU-UD,Удмуртская Республика,Приволжский ФО,https://upload.wikimedia.org/wikipedia/commons/thumb/c/c7/Flag_of_Udmurtia.svg/1920px-Flag_of_Udmurtia.svg.png
63 | RU-ROS,Ростовская область,Южный ФО,https://upload.wikimedia.org/wikipedia/commons/thumb/d/d9/Flag_of_Rostov_Oblast.svg/1280px-Flag_of_Rostov_Oblast.svg.png
64 | RU-RYA,Рязанская область,Центральный ФО,https://upload.wikimedia.org/wikipedia/commons/thumb/8/8c/Flag_of_Ryazan_Oblast.svg/1280px-Flag_of_Ryazan_Oblast.svg.png
65 | RU-SA,Республика Саха (Якутия),Дальневосточный ФО,https://upload.wikimedia.org/wikipedia/commons/thumb/e/eb/Flag_of_Sakha.svg/1920px-Flag_of_Sakha.svg.png
66 | RU-SPE,г. Санкт-Петербург,Северо-Западный ФО,https://upload.wikimedia.org/wikipedia/commons/thumb/c/ca/Flag_of_Saint_Petersburg.svg/1280px-Flag_of_Saint_Petersburg.svg.png
67 | RU-SAK,Сахалинская область,Дальневосточный ФО,https://upload.wikimedia.org/wikipedia/commons/thumb/5/57/Flag_of_Sakhalin_Oblast.svg/1280px-Flag_of_Sakhalin_Oblast.svg.png
68 | RU-SAM,Самарская область,Приволжский ФО,https://upload.wikimedia.org/wikipedia/commons/thumb/1/13/Flag_of_Samara_Oblast.svg/1280px-Flag_of_Samara_Oblast.svg.png
69 | RU-SAR,Саратовская область,Приволжский ФО,https://upload.wikimedia.org/wikipedia/commons/thumb/f/f5/Flag_of_Saratov_Oblast.svg/1280px-Flag_of_Saratov_Oblast.svg.png
70 | UA-40,г. Севастополь,Южный ФО,https://upload.wikimedia.org/wikipedia/commons/thumb/1/14/Flag_of_Sevastopol.svg/1280px-Flag_of_Sevastopol.svg.png
71 | RU-SMO,Смоленская область,Центральный ФО,https://upload.wikimedia.org/wikipedia/commons/thumb/b/bd/Flag_of_Smolensk_oblast.svg/1280px-Flag_of_Smolensk_oblast.svg.png
72 | RU-STA,Ставропольский край,Северо-Кавказский ФО,https://upload.wikimedia.org/wikipedia/commons/thumb/b/b4/Flag_of_Stavropol_Krai.svg/1280px-Flag_of_Stavropol_Krai.svg.png
73 | RU-SVE,Свердловская область,Уральский ФО,https://upload.wikimedia.org/wikipedia/commons/thumb/e/ef/Flag_of_Sverdlovsk_Oblast.svg/1280px-Flag_of_Sverdlovsk_Oblast.svg.png
74 | RU-TAM,Тамбовская область,Центральный ФО,https://upload.wikimedia.org/wikipedia/commons/thumb/3/39/Flag_of_Tambov_Oblast.svg/1280px-Flag_of_Tambov_Oblast.svg.png
75 | RU-TOM,Томская область,Сибирский ФО,https://upload.wikimedia.org/wikipedia/commons/thumb/5/50/Flag_of_Tomsk_Oblast.svg/1280px-Flag_of_Tomsk_Oblast.svg.png
76 | RU-TUL,Тульская область,Центральный ФО,https://upload.wikimedia.org/wikipedia/commons/thumb/6/69/Flag_of_Tula_Oblast.svg/1280px-Flag_of_Tula_Oblast.svg.png
77 | RU-TYU,Тюменская область,Уральский ФО,https://upload.wikimedia.org/wikipedia/commons/thumb/4/4e/Flag_of_Tyumen_Oblast.svg/1280px-Flag_of_Tyumen_Oblast.svg.png
78 | RU-TVE,Тверская область,Центральный ФО,https://upload.wikimedia.org/wikipedia/commons/thumb/6/60/Flag_of_Tver_Oblast.svg/1280px-Flag_of_Tver_Oblast.svg.png
79 | RU-ULY,Ульяновская область,Приволжский ФО,https://upload.wikimedia.org/wikipedia/commons/thumb/d/d8/Flag_of_Ulyanovsk_Oblast.svg/1280px-Flag_of_Ulyanovsk_Oblast.svg.png
80 | RU-VLA,Владимирская область,Центральный ФО,https://upload.wikimedia.org/wikipedia/commons/thumb/8/85/Flag_of_Vladimirskaya_Oblast.svg/1280px-Flag_of_Vladimirskaya_Oblast.svg.png
81 | RU-VGG,Волгоградская область,Южный ФО,https://upload.wikimedia.org/wikipedia/commons/thumb/3/35/Flag_of_Volgograd_Oblast.svg/1280px-Flag_of_Volgograd_Oblast.svg.png
82 | RU-VLG,Вологодская область,Северо-Западный ФО,https://upload.wikimedia.org/wikipedia/commons/thumb/a/af/Flag_of_Vologda_oblast.svg/1280px-Flag_of_Vologda_oblast.svg.png
83 | RU-VOR,Воронежская область,Центральный ФО,https://upload.wikimedia.org/wikipedia/commons/thumb/6/64/Flag_of_Voronezh_Oblast.svg/1280px-Flag_of_Voronezh_Oblast.svg.png
84 | RU-YAN,Ямало-Ненецкий АО,Уральский ФО,https://upload.wikimedia.org/wikipedia/commons/thumb/c/c7/Flag_of_Yamal-Nenets_Autonomous_District.svg/1280px-Flag_of_Yamal-Nenets_Autonomous_District.svg.png
85 | RU-YAR,Ярославская область,Центральный ФО,https://upload.wikimedia.org/wikipedia/commons/thumb/b/ba/Flag_of_Yaroslavl_Oblast.svg/1280px-Flag_of_Yaroslavl_Oblast.svg.png
86 | RU-ZAB,Забайкальский край,Дальневосточный ФО,https://upload.wikimedia.org/wikipedia/commons/thumb/b/b8/Flag_of_Zabaykalsky_Krai.svg/1280px-Flag_of_Zabaykalsky_Krai.svg.png
87 |
--------------------------------------------------------------------------------
/data/week2/validate.csv:
--------------------------------------------------------------------------------
1 | date,country,confirmed,deaths
2 | 2020-04-20,RU-AD,100,2
3 | 2020-04-21,RU-AD,108,2
4 | 2020-04-22,RU-AD,113,3
5 | 2020-04-23,RU-AD,114,3
6 | 2020-04-24,RU-AD,117,3
7 | 2020-04-25,RU-AD,119,3
8 | 2020-04-26,RU-AD,134,3
9 | 2020-04-20,RU-AL,4,0
10 | 2020-04-21,RU-AL,8,0
11 | 2020-04-22,RU-AL,8,0
12 | 2020-04-23,RU-AL,9,0
13 | 2020-04-24,RU-AL,9,0
14 | 2020-04-25,RU-AL,14,0
15 | 2020-04-26,RU-AL,15,0
16 | 2020-04-20,RU-ALT,84,0
17 | 2020-04-21,RU-ALT,127,0
18 | 2020-04-22,RU-ALT,136,0
19 | 2020-04-23,RU-ALT,144,0
20 | 2020-04-24,RU-ALT,152,0
21 | 2020-04-25,RU-ALT,215,1
22 | 2020-04-26,RU-ALT,283,2
23 | 2020-04-20,RU-AMU,20,0
24 | 2020-04-21,RU-AMU,20,0
25 | 2020-04-22,RU-AMU,23,0
26 | 2020-04-23,RU-AMU,25,0
27 | 2020-04-24,RU-AMU,28,0
28 | 2020-04-25,RU-AMU,33,0
29 | 2020-04-26,RU-AMU,36,0
30 | 2020-04-20,RU-ARK,114,1
31 | 2020-04-21,RU-ARK,118,1
32 | 2020-04-22,RU-ARK,120,1
33 | 2020-04-23,RU-ARK,123,1
34 | 2020-04-24,RU-ARK,137,1
35 | 2020-04-25,RU-ARK,147,1
36 | 2020-04-26,RU-ARK,167,1
37 | 2020-04-20,RU-AST,136,3
38 | 2020-04-21,RU-AST,137,3
39 | 2020-04-22,RU-AST,148,3
40 | 2020-04-23,RU-AST,165,3
41 | 2020-04-24,RU-AST,186,3
42 | 2020-04-25,RU-AST,211,4
43 | 2020-04-26,RU-AST,277,4
44 | 2020-04-20,RU-BA,297,14
45 | 2020-04-21,RU-BA,371,14
46 | 2020-04-22,RU-BA,396,14
47 | 2020-04-23,RU-BA,422,14
48 | 2020-04-24,RU-BA,455,14
49 | 2020-04-25,RU-BA,490,14
50 | 2020-04-26,RU-BA,527,14
51 | 2020-04-20,RU-BEL,112,2
52 | 2020-04-21,RU-BEL,122,2
53 | 2020-04-22,RU-BEL,144,2
54 | 2020-04-23,RU-BEL,176,2
55 | 2020-04-24,RU-BEL,202,2
56 | 2020-04-25,RU-BEL,221,2
57 | 2020-04-26,RU-BEL,242,2
58 | 2020-04-20,RU-BRY,321,1
59 | 2020-04-21,RU-BRY,350,1
60 | 2020-04-22,RU-BRY,399,1
61 | 2020-04-23,RU-BRY,459,2
62 | 2020-04-24,RU-BRY,494,2
63 | 2020-04-25,RU-BRY,521,2
64 | 2020-04-26,RU-BRY,599,3
65 | 2020-04-20,RU-BU,115,2
66 | 2020-04-21,RU-BU,125,2
67 | 2020-04-22,RU-BU,153,2
68 | 2020-04-23,RU-BU,163,2
69 | 2020-04-24,RU-BU,167,2
70 | 2020-04-25,RU-BU,180,2
71 | 2020-04-26,RU-BU,186,2
72 | 2020-04-20,RU-CE,264,5
73 | 2020-04-21,RU-CE,303,5
74 | 2020-04-22,RU-CE,323,6
75 | 2020-04-23,RU-CE,347,6
76 | 2020-04-24,RU-CE,365,6
77 | 2020-04-25,RU-CE,387,6
78 | 2020-04-26,RU-CE,409,6
79 | 2020-04-20,RU-CHE,78,0
80 | 2020-04-21,RU-CHE,92,0
81 | 2020-04-22,RU-CHE,102,0
82 | 2020-04-23,RU-CHE,111,0
83 | 2020-04-24,RU-CHE,168,0
84 | 2020-04-25,RU-CHE,240,0
85 | 2020-04-26,RU-CHE,302,0
86 | 2020-04-20,RU-CHU,2,0
87 | 2020-04-21,RU-CHU,2,0
88 | 2020-04-22,RU-CHU,6,0
89 | 2020-04-23,RU-CHU,6,0
90 | 2020-04-24,RU-CHU,11,0
91 | 2020-04-25,RU-CHU,12,0
92 | 2020-04-26,RU-CHU,15,0
93 | 2020-04-20,RU-CU,225,2
94 | 2020-04-21,RU-CU,235,5
95 | 2020-04-22,RU-CU,262,5
96 | 2020-04-23,RU-CU,305,5
97 | 2020-04-24,RU-CU,348,5
98 | 2020-04-25,RU-CU,383,7
99 | 2020-04-26,RU-CU,421,8
100 | 2020-04-20,RU-DA,331,9
101 | 2020-04-21,RU-DA,371,11
102 | 2020-04-22,RU-DA,417,11
103 | 2020-04-23,RU-DA,454,11
104 | 2020-04-24,RU-DA,567,11
105 | 2020-04-25,RU-DA,724,11
106 | 2020-04-26,RU-DA,827,11
107 | 2020-04-20,RU-IN,308,5
108 | 2020-04-21,RU-IN,354,9
109 | 2020-04-22,RU-IN,397,12
110 | 2020-04-23,RU-IN,436,13
111 | 2020-04-24,RU-IN,474,13
112 | 2020-04-25,RU-IN,515,13
113 | 2020-04-26,RU-IN,552,13
114 | 2020-04-20,RU-IRK,65,2
115 | 2020-04-21,RU-IRK,68,3
116 | 2020-04-22,RU-IRK,75,3
117 | 2020-04-23,RU-IRK,75,3
118 | 2020-04-24,RU-IRK,80,3
119 | 2020-04-25,RU-IRK,85,3
120 | 2020-04-26,RU-IRK,87,4
121 | 2020-04-20,RU-IVA,203,2
122 | 2020-04-21,RU-IVA,213,2
123 | 2020-04-22,RU-IVA,225,2
124 | 2020-04-23,RU-IVA,239,2
125 | 2020-04-24,RU-IVA,247,2
126 | 2020-04-25,RU-IVA,263,2
127 | 2020-04-26,RU-IVA,274,2
128 | 2020-04-20,RU-KAM,41,0
129 | 2020-04-21,RU-KAM,48,0
130 | 2020-04-22,RU-KAM,63,0
131 | 2020-04-23,RU-KAM,78,0
132 | 2020-04-24,RU-KAM,84,0
133 | 2020-04-25,RU-KAM,87,0
134 | 2020-04-26,RU-KAM,110,0
135 | 2020-04-20,RU-KB,152,0
136 | 2020-04-21,RU-KB,170,1
137 | 2020-04-22,RU-KB,193,1
138 | 2020-04-23,RU-KB,218,1
139 | 2020-04-24,RU-KB,243,1
140 | 2020-04-25,RU-KB,272,1
141 | 2020-04-26,RU-KB,300,1
142 | 2020-04-20,RU-KC,87,0
143 | 2020-04-21,RU-KC,106,0
144 | 2020-04-22,RU-KC,145,0
145 | 2020-04-23,RU-KC,169,0
146 | 2020-04-24,RU-KC,194,0
147 | 2020-04-25,RU-KC,240,0
148 | 2020-04-26,RU-KC,282,1
149 | 2020-04-20,RU-KDA,417,8
150 | 2020-04-21,RU-KDA,461,8
151 | 2020-04-22,RU-KDA,481,11
152 | 2020-04-23,RU-KDA,539,14
153 | 2020-04-24,RU-KDA,623,16
154 | 2020-04-25,RU-KDA,707,18
155 | 2020-04-26,RU-KDA,780,19
156 | 2020-04-20,RU-KEM,41,1
157 | 2020-04-21,RU-KEM,47,1
158 | 2020-04-22,RU-KEM,56,1
159 | 2020-04-23,RU-KEM,67,1
160 | 2020-04-24,RU-KEM,76,1
161 | 2020-04-25,RU-KEM,82,1
162 | 2020-04-26,RU-KEM,103,1
163 | 2020-04-20,RU-KGD,138,1
164 | 2020-04-21,RU-KGD,144,1
165 | 2020-04-22,RU-KGD,163,1
166 | 2020-04-23,RU-KGD,171,1
167 | 2020-04-24,RU-KGD,189,1
168 | 2020-04-25,RU-KGD,210,1
169 | 2020-04-26,RU-KGD,236,3
170 | 2020-04-20,RU-KGN,13,0
171 | 2020-04-21,RU-KGN,15,0
172 | 2020-04-22,RU-KGN,15,0
173 | 2020-04-23,RU-KGN,20,0
174 | 2020-04-24,RU-KGN,22,0
175 | 2020-04-25,RU-KGN,27,0
176 | 2020-04-26,RU-KGN,29,0
177 | 2020-04-20,RU-KHA,215,5
178 | 2020-04-21,RU-KHA,243,5
179 | 2020-04-22,RU-KHA,272,5
180 | 2020-04-23,RU-KHA,310,5
181 | 2020-04-24,RU-KHA,351,5
182 | 2020-04-25,RU-KHA,379,5
183 | 2020-04-26,RU-KHA,406,5
184 | 2020-04-20,RU-KHM,188,0
185 | 2020-04-21,RU-KHM,197,0
186 | 2020-04-22,RU-KHM,203,1
187 | 2020-04-23,RU-KHM,215,1
188 | 2020-04-24,RU-KHM,217,1
189 | 2020-04-25,RU-KHM,233,1
190 | 2020-04-26,RU-KHM,274,1
191 | 2020-04-20,RU-KIR,169,2
192 | 2020-04-21,RU-KIR,188,2
193 | 2020-04-22,RU-KIR,216,3
194 | 2020-04-23,RU-KIR,240,3
195 | 2020-04-24,RU-KIR,276,3
196 | 2020-04-25,RU-KIR,316,3
197 | 2020-04-26,RU-KIR,362,3
198 | 2020-04-20,RU-KK,76,0
199 | 2020-04-21,RU-KK,84,0
200 | 2020-04-22,RU-KK,87,0
201 | 2020-04-23,RU-KK,99,0
202 | 2020-04-24,RU-KK,102,1
203 | 2020-04-25,RU-KK,151,2
204 | 2020-04-26,RU-KK,176,2
205 | 2020-04-20,RU-KL,77,3
206 | 2020-04-21,RU-KL,77,3
207 | 2020-04-22,RU-KL,88,3
208 | 2020-04-23,RU-KL,94,3
209 | 2020-04-24,RU-KL,104,3
210 | 2020-04-25,RU-KL,122,3
211 | 2020-04-26,RU-KL,146,3
212 | 2020-04-20,RU-KLU,228,4
213 | 2020-04-21,RU-KLU,258,6
214 | 2020-04-22,RU-KLU,330,8
215 | 2020-04-23,RU-KLU,383,8
216 | 2020-04-24,RU-KLU,444,8
217 | 2020-04-25,RU-KLU,513,8
218 | 2020-04-26,RU-KLU,583,8
219 | 2020-04-20,RU-KO,491,3
220 | 2020-04-21,RU-KO,507,3
221 | 2020-04-22,RU-KO,527,4
222 | 2020-04-23,RU-KO,542,4
223 | 2020-04-24,RU-KO,553,4
224 | 2020-04-25,RU-KO,561,4
225 | 2020-04-26,RU-KO,578,5
226 | 2020-04-20,RU-KOS,70,2
227 | 2020-04-21,RU-KOS,81,2
228 | 2020-04-22,RU-KOS,88,2
229 | 2020-04-23,RU-KOS,104,2
230 | 2020-04-24,RU-KOS,120,2
231 | 2020-04-25,RU-KOS,137,3
232 | 2020-04-26,RU-KOS,148,3
233 | 2020-04-20,RU-KR,27,0
234 | 2020-04-21,RU-KR,30,0
235 | 2020-04-22,RU-KR,30,0
236 | 2020-04-23,RU-KR,35,0
237 | 2020-04-24,RU-KR,37,0
238 | 2020-04-25,RU-KR,42,0
239 | 2020-04-26,RU-KR,44,0
240 | 2020-04-20,RU-KRS,220,2
241 | 2020-04-21,RU-KRS,242,3
242 | 2020-04-22,RU-KRS,276,3
243 | 2020-04-23,RU-KRS,308,3
244 | 2020-04-24,RU-KRS,345,3
245 | 2020-04-25,RU-KRS,389,4
246 | 2020-04-26,RU-KRS,456,4
247 | 2020-04-20,RU-KYA,306,2
248 | 2020-04-21,RU-KYA,370,2
249 | 2020-04-22,RU-KYA,392,2
250 | 2020-04-23,RU-KYA,427,5
251 | 2020-04-24,RU-KYA,449,5
252 | 2020-04-25,RU-KYA,467,5
253 | 2020-04-26,RU-KYA,508,5
254 | 2020-04-20,RU-LEN,454,0
255 | 2020-04-21,RU-LEN,496,0
256 | 2020-04-22,RU-LEN,537,0
257 | 2020-04-23,RU-LEN,576,0
258 | 2020-04-24,RU-LEN,615,0
259 | 2020-04-25,RU-LEN,658,0
260 | 2020-04-26,RU-LEN,700,0
261 | 2020-04-20,RU-LIP,169,1
262 | 2020-04-21,RU-LIP,189,2
263 | 2020-04-22,RU-LIP,213,2
264 | 2020-04-23,RU-LIP,238,2
265 | 2020-04-24,RU-LIP,263,2
266 | 2020-04-25,RU-LIP,284,2
267 | 2020-04-26,RU-LIP,306,2
268 | 2020-04-20,RU-MAG,63,0
269 | 2020-04-21,RU-MAG,65,0
270 | 2020-04-22,RU-MAG,67,0
271 | 2020-04-23,RU-MAG,76,0
272 | 2020-04-24,RU-MAG,78,0
273 | 2020-04-25,RU-MAG,87,0
274 | 2020-04-26,RU-MAG,88,0
275 | 2020-04-20,RU-ME,291,1
276 | 2020-04-21,RU-ME,311,1
277 | 2020-04-22,RU-ME,333,1
278 | 2020-04-23,RU-ME,348,1
279 | 2020-04-24,RU-ME,377,1
280 | 2020-04-25,RU-ME,407,1
281 | 2020-04-26,RU-ME,431,3
282 | 2020-04-20,RU-MO,293,1
283 | 2020-04-21,RU-MO,327,1
284 | 2020-04-22,RU-MO,357,1
285 | 2020-04-23,RU-MO,385,1
286 | 2020-04-24,RU-MO,424,2
287 | 2020-04-25,RU-MO,469,2
288 | 2020-04-26,RU-MO,518,2
289 | 2020-04-20,RU-MOS,5241,49
290 | 2020-04-21,RU-MOS,5959,49
291 | 2020-04-22,RU-MOS,6590,56
292 | 2020-04-23,RU-MOS,7278,56
293 | 2020-04-24,RU-MOS,7889,66
294 | 2020-04-25,RU-MOS,8494,69
295 | 2020-04-26,RU-MOS,9070,71
296 | 2020-04-20,RU-MOW,26350,204
297 | 2020-04-21,RU-MOW,29433,233
298 | 2020-04-22,RU-MOW,31981,261
299 | 2020-04-23,RU-MOW,33940,288
300 | 2020-04-24,RU-MOW,36897,325
301 | 2020-04-25,RU-MOW,39509,366
302 | 2020-04-26,RU-MOW,42480,404
303 | 2020-04-20,RU-MUR,400,3
304 | 2020-04-21,RU-MUR,435,3
305 | 2020-04-22,RU-MUR,506,3
306 | 2020-04-23,RU-MUR,603,3
307 | 2020-04-24,RU-MUR,663,4
308 | 2020-04-25,RU-MUR,856,4
309 | 2020-04-26,RU-MUR,961,4
310 | 2020-04-20,RU-NEN,1,0
311 | 2020-04-21,RU-NEN,1,0
312 | 2020-04-22,RU-NEN,1,0
313 | 2020-04-23,RU-NEN,1,0
314 | 2020-04-24,RU-NEN,1,0
315 | 2020-04-25,RU-NEN,1,0
316 | 2020-04-26,RU-NEN,2,0
317 | 2020-04-20,RU-NGR,108,1
318 | 2020-04-21,RU-NGR,114,1
319 | 2020-04-22,RU-NGR,140,1
320 | 2020-04-23,RU-NGR,157,1
321 | 2020-04-24,RU-NGR,171,1
322 | 2020-04-25,RU-NGR,186,1
323 | 2020-04-26,RU-NGR,211,2
324 | 2020-04-20,RU-NIZ,759,5
325 | 2020-04-21,RU-NIZ,860,5
326 | 2020-04-22,RU-NIZ,929,6
327 | 2020-04-23,RU-NIZ,1002,7
328 | 2020-04-24,RU-NIZ,1096,8
329 | 2020-04-25,RU-NIZ,1214,8
330 | 2020-04-26,RU-NIZ,1367,8
331 | 2020-04-20,RU-NVS,132,3
332 | 2020-04-21,RU-NVS,135,4
333 | 2020-04-22,RU-NVS,151,4
334 | 2020-04-23,RU-NVS,168,4
335 | 2020-04-24,RU-NVS,209,4
336 | 2020-04-25,RU-NVS,247,4
337 | 2020-04-26,RU-NVS,305,4
338 | 2020-04-20,RU-OMS,36,0
339 | 2020-04-21,RU-OMS,41,0
340 | 2020-04-22,RU-OMS,45,0
341 | 2020-04-23,RU-OMS,53,0
342 | 2020-04-24,RU-OMS,54,0
343 | 2020-04-25,RU-OMS,58,1
344 | 2020-04-26,RU-OMS,62,2
345 | 2020-04-20,RU-ORE,184,2
346 | 2020-04-21,RU-ORE,226,2
347 | 2020-04-22,RU-ORE,254,2
348 | 2020-04-23,RU-ORE,277,2
349 | 2020-04-24,RU-ORE,305,2
350 | 2020-04-25,RU-ORE,361,2
351 | 2020-04-26,RU-ORE,377,2
352 | 2020-04-20,RU-ORL,175,1
353 | 2020-04-21,RU-ORL,198,1
354 | 2020-04-22,RU-ORL,238,2
355 | 2020-04-23,RU-ORL,249,2
356 | 2020-04-24,RU-ORL,296,2
357 | 2020-04-25,RU-ORL,321,2
358 | 2020-04-26,RU-ORL,363,2
359 | 2020-04-20,RU-PER,215,3
360 | 2020-04-21,RU-PER,237,3
361 | 2020-04-22,RU-PER,266,3
362 | 2020-04-23,RU-PER,287,4
363 | 2020-04-24,RU-PER,318,4
364 | 2020-04-25,RU-PER,373,4
365 | 2020-04-26,RU-PER,434,4
366 | 2020-04-20,RU-PNZ,165,5
367 | 2020-04-21,RU-PNZ,180,5
368 | 2020-04-22,RU-PNZ,196,5
369 | 2020-04-23,RU-PNZ,211,5
370 | 2020-04-24,RU-PNZ,232,5
371 | 2020-04-25,RU-PNZ,255,6
372 | 2020-04-26,RU-PNZ,261,6
373 | 2020-04-20,RU-PRI,97,2
374 | 2020-04-21,RU-PRI,104,2
375 | 2020-04-22,RU-PRI,166,2
376 | 2020-04-23,RU-PRI,185,2
377 | 2020-04-24,RU-PRI,220,2
378 | 2020-04-25,RU-PRI,254,2
379 | 2020-04-26,RU-PRI,278,3
380 | 2020-04-20,RU-PSK,52,6
381 | 2020-04-21,RU-PSK,58,6
382 | 2020-04-22,RU-PSK,62,6
383 | 2020-04-23,RU-PSK,66,6
384 | 2020-04-24,RU-PSK,81,6
385 | 2020-04-25,RU-PSK,93,6
386 | 2020-04-26,RU-PSK,110,7
387 | 2020-04-20,RU-ROS,292,0
388 | 2020-04-21,RU-ROS,346,0
389 | 2020-04-22,RU-ROS,398,0
390 | 2020-04-23,RU-ROS,469,0
391 | 2020-04-24,RU-ROS,533,0
392 | 2020-04-25,RU-ROS,584,0
393 | 2020-04-26,RU-ROS,649,1
394 | 2020-04-20,RU-RYA,289,0
395 | 2020-04-21,RU-RYA,316,0
396 | 2020-04-22,RU-RYA,392,0
397 | 2020-04-23,RU-RYA,429,0
398 | 2020-04-24,RU-RYA,475,0
399 | 2020-04-25,RU-RYA,539,0
400 | 2020-04-26,RU-RYA,602,0
401 | 2020-04-20,RU-SA,107,0
402 | 2020-04-21,RU-SA,111,0
403 | 2020-04-22,RU-SA,116,0
404 | 2020-04-23,RU-SA,128,0
405 | 2020-04-24,RU-SA,137,0
406 | 2020-04-25,RU-SA,141,0
407 | 2020-04-26,RU-SA,152,0
408 | 2020-04-20,RU-SAK,19,0
409 | 2020-04-21,RU-SAK,19,0
410 | 2020-04-22,RU-SAK,19,0
411 | 2020-04-23,RU-SAK,19,0
412 | 2020-04-24,RU-SAK,20,0
413 | 2020-04-25,RU-SAK,20,0
414 | 2020-04-26,RU-SAK,20,0
415 | 2020-04-20,RU-SAM,95,0
416 | 2020-04-21,RU-SAM,103,0
417 | 2020-04-22,RU-SAM,115,0
418 | 2020-04-23,RU-SAM,141,0
419 | 2020-04-24,RU-SAM,185,0
420 | 2020-04-25,RU-SAM,209,0
421 | 2020-04-26,RU-SAM,229,2
422 | 2020-04-20,RU-SAR,142,0
423 | 2020-04-21,RU-SAR,168,0
424 | 2020-04-22,RU-SAR,190,0
425 | 2020-04-23,RU-SAR,229,0
426 | 2020-04-24,RU-SAR,245,0
427 | 2020-04-25,RU-SAR,265,2
428 | 2020-04-26,RU-SAR,305,2
429 | 2020-04-20,RU-SE,145,2
430 | 2020-04-21,RU-SE,177,2
431 | 2020-04-22,RU-SE,211,2
432 | 2020-04-23,RU-SE,242,2
433 | 2020-04-24,RU-SE,275,2
434 | 2020-04-25,RU-SE,305,2
435 | 2020-04-26,RU-SE,348,2
436 | 2020-04-20,RU-SMO,189,2
437 | 2020-04-21,RU-SMO,208,2
438 | 2020-04-22,RU-SMO,244,2
439 | 2020-04-23,RU-SMO,251,2
440 | 2020-04-24,RU-SMO,262,2
441 | 2020-04-25,RU-SMO,279,2
442 | 2020-04-26,RU-SMO,289,2
443 | 2020-04-20,RU-SPE,1846,8
444 | 2020-04-21,RU-SPE,1973,11
445 | 2020-04-22,RU-SPE,2267,14
446 | 2020-04-23,RU-SPE,2458,17
447 | 2020-04-24,RU-SPE,2711,20
448 | 2020-04-25,RU-SPE,2926,23
449 | 2020-04-26,RU-SPE,3077,27
450 | 2020-04-20,RU-STA,244,3
451 | 2020-04-21,RU-STA,266,4
452 | 2020-04-22,RU-STA,277,5
453 | 2020-04-23,RU-STA,332,5
454 | 2020-04-24,RU-STA,358,5
455 | 2020-04-25,RU-STA,385,5
456 | 2020-04-26,RU-STA,421,6
457 | 2020-04-20,RU-SVE,149,1
458 | 2020-04-21,RU-SVE,233,1
459 | 2020-04-22,RU-SVE,243,1
460 | 2020-04-23,RU-SVE,271,1
461 | 2020-04-24,RU-SVE,304,1
462 | 2020-04-25,RU-SVE,337,1
463 | 2020-04-26,RU-SVE,395,1
464 | 2020-04-20,RU-TA,230,0
465 | 2020-04-21,RU-TA,280,0
466 | 2020-04-22,RU-TA,355,0
467 | 2020-04-23,RU-TA,412,0
468 | 2020-04-24,RU-TA,426,0
469 | 2020-04-25,RU-TA,491,0
470 | 2020-04-26,RU-TA,562,0
471 | 2020-04-20,RU-TAM,209,0
472 | 2020-04-21,RU-TAM,222,0
473 | 2020-04-22,RU-TAM,240,0
474 | 2020-04-23,RU-TAM,263,0
475 | 2020-04-24,RU-TAM,298,0
476 | 2020-04-25,RU-TAM,343,1
477 | 2020-04-26,RU-TAM,399,1
478 | 2020-04-20,RU-TOM,33,0
479 | 2020-04-21,RU-TOM,37,0
480 | 2020-04-22,RU-TOM,43,0
481 | 2020-04-23,RU-TOM,52,0
482 | 2020-04-24,RU-TOM,59,0
483 | 2020-04-25,RU-TOM,66,0
484 | 2020-04-26,RU-TOM,67,0
485 | 2020-04-20,RU-TUL,309,0
486 | 2020-04-21,RU-TUL,384,1
487 | 2020-04-22,RU-TUL,436,2
488 | 2020-04-23,RU-TUL,461,3
489 | 2020-04-24,RU-TUL,505,3
490 | 2020-04-25,RU-TUL,578,4
491 | 2020-04-26,RU-TUL,644,5
492 | 2020-04-20,RU-TVE,296,0
493 | 2020-04-21,RU-TVE,329,0
494 | 2020-04-22,RU-TVE,356,0
495 | 2020-04-23,RU-TVE,383,0
496 | 2020-04-24,RU-TVE,412,0
497 | 2020-04-25,RU-TVE,441,0
498 | 2020-04-26,RU-TVE,464,1
499 | 2020-04-20,RU-TY,13,0
500 | 2020-04-21,RU-TY,13,0
501 | 2020-04-22,RU-TY,13,0
502 | 2020-04-23,RU-TY,14,0
503 | 2020-04-24,RU-TY,15,0
504 | 2020-04-25,RU-TY,24,0
505 | 2020-04-26,RU-TY,27,0
506 | 2020-04-20,RU-TYU,254,2
507 | 2020-04-21,RU-TYU,290,2
508 | 2020-04-22,RU-TYU,319,2
509 | 2020-04-23,RU-TYU,341,2
510 | 2020-04-24,RU-TYU,357,2
511 | 2020-04-25,RU-TYU,374,3
512 | 2020-04-26,RU-TYU,386,3
513 | 2020-04-20,RU-UD,92,3
514 | 2020-04-21,RU-UD,118,3
515 | 2020-04-22,RU-UD,152,3
516 | 2020-04-23,RU-UD,161,3
517 | 2020-04-24,RU-UD,178,4
518 | 2020-04-25,RU-UD,193,4
519 | 2020-04-26,RU-UD,202,4
520 | 2020-04-20,RU-ULY,187,2
521 | 2020-04-21,RU-ULY,187,2
522 | 2020-04-22,RU-ULY,196,2
523 | 2020-04-23,RU-ULY,228,2
524 | 2020-04-24,RU-ULY,253,3
525 | 2020-04-25,RU-ULY,280,3
526 | 2020-04-26,RU-ULY,307,3
527 | 2020-04-20,RU-VGG,111,1
528 | 2020-04-21,RU-VGG,134,1
529 | 2020-04-22,RU-VGG,145,2
530 | 2020-04-23,RU-VGG,165,2
531 | 2020-04-24,RU-VGG,186,3
532 | 2020-04-25,RU-VGG,212,5
533 | 2020-04-26,RU-VGG,242,6
534 | 2020-04-20,RU-VLA,259,5
535 | 2020-04-21,RU-VLA,280,5
536 | 2020-04-22,RU-VLA,293,5
537 | 2020-04-23,RU-VLA,339,5
538 | 2020-04-24,RU-VLA,381,5
539 | 2020-04-25,RU-VLA,426,5
540 | 2020-04-26,RU-VLA,475,5
541 | 2020-04-20,RU-VLG,100,0
542 | 2020-04-21,RU-VLG,107,0
543 | 2020-04-22,RU-VLG,114,0
544 | 2020-04-23,RU-VLG,120,0
545 | 2020-04-24,RU-VLG,129,0
546 | 2020-04-25,RU-VLG,138,0
547 | 2020-04-26,RU-VLG,145,0
548 | 2020-04-20,RU-VOR,180,5
549 | 2020-04-21,RU-VOR,211,6
550 | 2020-04-22,RU-VOR,236,7
551 | 2020-04-23,RU-VOR,261,7
552 | 2020-04-24,RU-VOR,291,7
553 | 2020-04-25,RU-VOR,313,8
554 | 2020-04-26,RU-VOR,338,8
555 | 2020-04-20,RU-YAN,140,1
556 | 2020-04-21,RU-YAN,146,1
557 | 2020-04-22,RU-YAN,149,1
558 | 2020-04-23,RU-YAN,243,1
559 | 2020-04-24,RU-YAN,266,1
560 | 2020-04-25,RU-YAN,303,1
561 | 2020-04-26,RU-YAN,348,1
562 | 2020-04-20,RU-YAR,144,0
563 | 2020-04-21,RU-YAR,187,0
564 | 2020-04-22,RU-YAR,198,0
565 | 2020-04-23,RU-YAR,263,1
566 | 2020-04-24,RU-YAR,305,2
567 | 2020-04-25,RU-YAR,342,2
568 | 2020-04-26,RU-YAR,384,2
569 | 2020-04-20,RU-YEV,22,0
570 | 2020-04-21,RU-YEV,43,0
571 | 2020-04-22,RU-YEV,52,0
572 | 2020-04-23,RU-YEV,66,0
573 | 2020-04-24,RU-YEV,80,0
574 | 2020-04-25,RU-YEV,86,0
575 | 2020-04-26,RU-YEV,86,0
576 | 2020-04-20,RU-ZAB,43,0
577 | 2020-04-21,RU-ZAB,50,0
578 | 2020-04-22,RU-ZAB,61,0
579 | 2020-04-23,RU-ZAB,64,0
580 | 2020-04-24,RU-ZAB,73,0
581 | 2020-04-25,RU-ZAB,83,0
582 | 2020-04-26,RU-ZAB,90,0
583 | 2020-04-20,UA-40,17,0
584 | 2020-04-21,UA-40,18,0
585 | 2020-04-22,UA-40,19,0
586 | 2020-04-23,UA-40,25,0
587 | 2020-04-24,UA-40,25,0
588 | 2020-04-25,UA-40,26,0
589 | 2020-04-26,UA-40,31,0
590 | 2020-04-20,UA-43,45,0
591 | 2020-04-21,UA-43,46,0
592 | 2020-04-22,UA-43,46,0
593 | 2020-04-23,UA-43,51,0
594 | 2020-04-24,UA-43,53,0
595 | 2020-04-25,UA-43,57,0
596 | 2020-04-26,UA-43,67,0
597 |
--------------------------------------------------------------------------------
/data/countries.csv:
--------------------------------------------------------------------------------
1 | country,name,iso_alpha2,population,area,density,lat,long,is_region,region_center
2 | AFG,Afghanistan,AF,38928346,652860,60.0,33.0,65.0,0,
3 | AGO,Angola,AO,32866272,1246700,26.0,-11.2027,17.8739,0,
4 | ALB,Albania,AL,2877797,27400,105.0,41.1533,20.1683,0,
5 | AND,Andorra,AD,77265,470,164.0,42.5063,1.5218,0,
6 | ARE,United Arab Emirates,AE,9890402,83600,118.0,24.0,54.0,0,
7 | ARG,Argentina,AR,45195774,2736690,17.0,-38.4161,-63.6167,0,
8 | ARM,Armenia,AM,2963243,28470,104.0,40.0691,45.0382,0,
9 | ATG,Antigua and Barbuda,AG,97929,440,223.0,17.0608,-61.7964,0,
10 | AUS,Australia,AU,25499884,7682300,3.0,-31.9961875,141.2327875,0,
11 | AUT,Austria,AT,9006398,82409,109.0,47.5162,14.5501,0,
12 | AZE,Azerbaijan,AZ,10139177,82658,123.0,40.1431,47.5769,0,
13 | BEL,Belgium,BE,11589623,30280,383.0,50.8333,4.0,0,
14 | BEN,Benin,BJ,12123200,112760,108.0,9.3077,2.3158,0,
15 | BFA,Burkina Faso,BF,20903273,273600,76.0,12.2383,-1.5616,0,
16 | BGD,Bangladesh,BD,164689383,130170,1265.0,23.685,90.3563,0,
17 | BGR,Bulgaria,BG,6948445,108560,64.0,42.7339,25.4858,0,
18 | BHR,Bahrain,BH,1701575,760,2239.0,26.0275,50.55,0,
19 | BHS,Bahamas,BS,393244,10010,39.0,25.0343,-77.3963,0,
20 | BIH,Bosnia and Herzegovina,BA,3280819,51000,64.0,43.9159,17.6791,0,
21 | BLR,Belarus,BY,9449323,202910,47.0,53.7098,27.9534,0,
22 | BLZ,Belize,BZ,397628,22810,17.0,13.1939,-59.5432,0,
23 | BOL,Bolivia,BO,11673021,1083300,11.0,-16.2902,-63.5887,0,
24 | BRA,Brazil,BR,212559417,8358140,25.0,-14.235,-51.9253,0,
25 | BRB,Barbados,BB,287375,430,668.0,13.1939,-59.5432,0,
26 | BRN,Brunei,BN,437479,5270,83.0,4.5353,114.7277,0,
27 | BTN,Bhutan,BT,771608,38117,20.0,27.5142,90.4336,0,
28 | CAF,Central African Republic,CF,4829767,622980,8.0,6.6111,20.9394,0,
29 | CAN,Canada,CA,37742154,9093510,4.0,44.78404666666667,-82.50859333333331,0,
30 | CHE,Switzerland,CH,8654622,39516,219.0,46.8182,8.2275,0,
31 | CHL,Chile,CL,19116201,743532,26.0,-35.6751,-71.543,0,
32 | CHN,China,CN,1439323776,9388211,153.0,32.82838484848485,111.64908181818184,0,
33 | CIV,Cote d'Ivoire,CI,26378274,318000,83.0,7.54,-5.5471,0,
34 | CMR,Cameroon,CM,26545863,472710,56.0,3.8480000000000003,11.5021,0,
35 | COD,Congo (Kinshasa),CD,89561403,2267050,40.0,-4.0383,21.7587,0,
36 | COG,Congo (Brazzaville),CG,5518087,341500,16.0,-4.0383,21.7587,0,
37 | COL,Colombia,CO,50882891,1109500,46.0,4.5709,-74.2973,0,
38 | CPV,Cabo Verde,CV,555987,4030,138.0,16.5388,-23.0418,0,
39 | CRI,Costa Rica,CR,5094118,51060,100.0,9.7489,-83.7534,0,
40 | CUB,Cuba,CU,11326616,106440,106.0,22.0,-80.0,0,
41 | CYP,Cyprus,CY,1207359,9240,131.0,35.1264,33.4299,0,
42 | CZE,Czechia,CZ,10708981,77240,139.0,49.8175,15.472999999999999,0,
43 | DEU,Germany,DE,83783942,348560,240.0,51.0,9.0,0,
44 | DJI,Djibouti,DJ,988000,23180,43.0,11.8251,42.5903,0,
45 | DMA,Dominica,DM,71986,750,96.0,15.415,-61.371,0,
46 | DNK,Denmark,DK,5792202,42430,137.0,63.2878,-13.338100000000004,0,
47 | DOM,Dominican Republic,DO,10847910,48320,225.0,18.7357,-70.1627,0,
48 | DZA,Algeria,DZ,43851044,2381740,18.0,28.0339,1.6596,0,
49 | ECU,Ecuador,EC,17643054,248360,71.0,-1.8312,-78.1834,0,
50 | EGY,Egypt,EG,102334404,995450,103.0,26.0,30.0,0,
51 | ERI,Eritrea,ER,3546421,101000,35.0,15.1794,39.7823,0,
52 | ESP,Spain,ES,46754778,498800,94.0,40.0,-4.0,0,
53 | EST,Estonia,EE,1326535,42390,31.0,58.5953,25.0136,0,
54 | ETH,Ethiopia,ET,114963588,1000000,115.0,9.145,40.4897,0,
55 | FIN,Finland,FI,5540720,303890,18.0,64.0,26.0,0,
56 | FJI,Fiji,FJ,896445,18270,49.0,-17.7134,178.065,0,
57 | FRA,France,FR,65273511,547557,119.0,4.44772,11.603509999999998,0,
58 | GAB,Gabon,GA,2225734,257670,9.0,-0.8037,11.6094,0,
59 | GBR,United Kingdom,GB,67886011,241930,281.0,32.18262,-42.340109999999996,0,
60 | GEO,Georgia,GE,3989167,69490,57.0,42.3154,43.3569,0,
61 | GHA,Ghana,GH,31072940,227540,137.0,7.9465,-1.0232,0,
62 | GIN,Guinea,GN,13132795,245720,53.0,9.9456,-9.6966,0,
63 | GMB,Gambia,GM,2416668,10120,239.0,13.4432,-15.3101,0,
64 | GNQ,Equatorial Guinea,GQ,1402985,28050,50.0,1.5,10.0,0,
65 | GRC,Greece,GR,10423054,128900,81.0,39.0742,21.8243,0,
66 | GRD,Grenada,GD,112523,340,331.0,12.1165,-61.678999999999995,0,
67 | GTM,Guatemala,GT,17915568,107160,167.0,15.7835,-90.2308,0,
68 | GUY,Guyana,GY,786552,196850,4.0,5.0,-58.75,0,
69 | HND,Honduras,HN,9904607,111890,89.0,15.2,-86.2419,0,
70 | HRV,Croatia,HR,4105267,55960,73.0,45.1,15.2,0,
71 | HTI,Haiti,HT,11402528,27560,414.0,18.9712,-72.2852,0,
72 | HUN,Hungary,HU,9660351,90530,107.0,47.1625,19.5033,0,
73 | IDN,Indonesia,ID,273523615,1811570,151.0,-0.7893,113.9213,0,
74 | IND,India,IN,1380004385,2973190,464.0,21.0,78.0,0,
75 | IRL,Ireland,IE,4937786,68890,72.0,53.1424,-7.6921,0,
76 | IRN,Iran,IR,83992949,1628550,52.0,32.0,53.0,0,
77 | IRQ,Iraq,IQ,40222493,434320,93.0,33.0,44.0,0,
78 | ISL,Iceland,IS,341243,100250,3.0,64.9631,-19.0208,0,
79 | ISR,Israel,IL,8655535,21640,400.0,31.0,35.0,0,
80 | ITA,Italy,IT,60461826,294140,206.0,43.0,12.0,0,
81 | JAM,Jamaica,JM,2961167,10830,273.0,18.1096,-77.2975,0,
82 | JOR,Jordan,JO,10203134,88780,115.0,31.24,36.51,0,
83 | JPN,Japan,JP,126476461,364555,347.0,36.0,138.0,0,
84 | KAZ,Kazakhstan,KZ,18776707,2699700,7.0,48.0196,66.9237,0,
85 | KEN,Kenya,KE,53771296,569140,94.0,-0.0236,37.9062,0,
86 | KGZ,Kyrgyzstan,KG,6524195,191800,34.0,41.2044,74.7661,0,
87 | KHM,Cambodia,KH,16718965,176520,95.0,11.55,104.9167,0,
88 | KOR,"Korea, South",KR,51269185,97230,527.0,36.0,128.0,0,
89 | KWT,Kuwait,KW,4270571,17820,240.0,29.5,47.75,0,
90 | LAO,Laos,LA,7275560,230800,32.0,19.856270000000002,102.495496,0,
91 | LBN,Lebanon,LB,6825445,10230,667.0,33.8547,35.8623,0,
92 | LBR,Liberia,LR,5057681,96320,53.0,6.4281,-9.4295,0,
93 | LBY,Libya,LY,6871292,1759540,4.0,26.3351,17.228331,0,
94 | LCA,Saint Lucia,LC,183627,610,301.0,13.9094,-60.9789,0,
95 | LIE,Liechtenstein,LI,38128,160,238.0,47.14,9.55,0,
96 | LKA,Sri Lanka,LK,21413249,62710,341.0,7.0,81.0,0,
97 | LTU,Lithuania,LT,2722289,62674,43.0,55.1694,23.8813,0,
98 | LUX,Luxembourg,LU,625978,2590,242.0,49.8153,6.1296,0,
99 | LVA,Latvia,LV,1886198,62200,30.0,56.8796,24.6032,0,
100 | MAR,Morocco,MA,36910560,446300,83.0,31.7917,-7.0926,0,
101 | MCO,Monaco,MC,39242,1,26337.0,43.7333,7.4167,0,
102 | MDA,Moldova,MD,4033963,32850,123.0,47.4116,28.3699,0,
103 | MDG,Madagascar,MG,27691018,581795,48.0,-18.7669,46.8691,0,
104 | MDV,Maldives,MV,540544,300,1802.0,3.2028,73.2207,0,
105 | MEX,Mexico,MX,128932753,1943950,66.0,23.6345,-102.5528,0,
106 | MKD,North Macedonia,MK,2083374,25220,83.0,41.6086,21.7453,0,
107 | MLT,Malta,MT,441543,320,1380.0,35.9375,14.3754,0,
108 | MNE,Montenegro,ME,628066,13450,47.0,42.5,19.3,0,
109 | MNG,Mongolia,MN,3278290,1553560,2.0,46.8625,103.8467,0,
110 | MOZ,Mozambique,MZ,31255435,786380,40.0,-18.665695,35.529562,0,
111 | MRT,Mauritania,MR,4649658,1030700,5.0,21.0079,10.9408,0,
112 | MUS,Mauritius,MU,1271768,2030,626.0,-20.2,57.5,0,
113 | MYS,Malaysia,MY,32365999,328550,99.0,2.5,112.5,0,
114 | NAM,Namibia,,2540905,823290,3.0,-22.9576,18.4904,0,
115 | NER,Niger,NE,24206644,1266700,19.0,17.6078,8.0817,0,
116 | NGA,Nigeria,NG,206139589,910770,226.0,9.082,8.6753,0,
117 | NIC,Nicaragua,NI,6624554,120340,55.0,12.8654,-85.2072,0,
118 | NLD,Netherlands,NL,17134872,33720,508.0,21.40834,-53.005559999999996,0,
119 | NOR,Norway,NO,5421241,365268,15.0,60.472,8.4689,0,
120 | NPL,Nepal,NP,29136808,143350,203.0,28.1667,84.25,0,
121 | NZL,New Zealand,NZ,4822233,263310,18.0,-40.9006,174.886,0,
122 | OMN,Oman,OM,5106626,309500,16.0,21.0,57.0,0,
123 | PAK,Pakistan,PK,220892340,770880,287.0,30.3753,69.3451,0,
124 | PAN,Panama,PA,4314767,74340,58.0,8.538,-80.7821,0,
125 | PER,Peru,PE,32971854,1280000,26.0,-9.19,-75.0152,0,
126 | PHL,Philippines,PH,109581078,298170,368.0,13.0,122.0,0,
127 | PNG,Papua New Guinea,PG,8947024,452860,20.0,-6.315,143.9555,0,
128 | POL,Poland,PL,37846611,306230,124.0,51.9194,19.1451,0,
129 | PRT,Portugal,PT,10196709,91590,111.0,39.3999,-8.2245,0,
130 | PRY,Paraguay,PY,7132538,397300,18.0,-23.4425,-58.4438,0,
131 | QAT,Qatar,QA,2881053,11610,248.0,25.3548,51.1839,0,
132 | ROU,Romania,RO,19237691,230170,84.0,45.9432,24.9668,0,
133 | RU-AD,Republic of Adygeia,,463453,7792,59.48,44.6939006,40.1520421,1,Майкоп
134 | RU-AL,Altay republic,,220140,92903,2.37,50.7114101,86.8572186,1,Горно-Алтайск
135 | RU-ALT,Altayskiy kray,,2317052,167996,13.79,52.693224300000004,82.69314240000001,1,Барнаул
136 | RU-AMU,Amursk oblast,,790676,361908,2.18,52.8032368,128.437295,1,Благовещенск
137 | RU-ARK,Arkhangelsk oblast,,1136387,413103,2.64,63.558969,43.122165,1,Архангельск
138 | RU-AST,Astrahan oblast,,1005967,49024,20.52,47.1878186,47.608851,1,Астрахань
139 | RU-BA,Republic of Bashkortostan,,4037811,142947,28.25,54.4747553,55.97845820000001,1,Уфа
140 | RU-BEL,Belgorod oblast,,1547532,27134,57.03,50.7080119,37.5837615,1,Белгород
141 | RU-BRY,Briansk oblast,,1192570,34857,34.21,52.887331499999995,33.41585300000001,1,Брянск
142 | RU-BU,Republic of Buriatia,,986109,351334,2.81,53.60950465,111.02710087838608,1,Улан-Удэ
143 | RU-CE,Chechen republic,,1476752,16165,91.35,43.39761470000001,45.6985005,1,Грозный
144 | RU-CHE,Cheliabinsk oblast,,3466960,88529,39.15,54.4223954,61.1865846,1,Челябинск
145 | RU-CHU,Chukotskiy autonomous oblast,,50726,721481,0.07,66.0006475,169.4900869,1,Анадырь
146 | RU-CU,Republic of Chuvashia,,1217820,18343,66.39,56.1424308,47.25445429999999,1,Чебоксары
147 | RU-DA,Republic of Dagestan,,3111353,50270,61.89,43.05749160000001,47.1332224,1,Махачкала
148 | RU-IN,Ingushetia republic,,506688,3123,162.24,43.1655309,44.979682000000004,1,Магас
149 | RU-IRK,Irkutsk oblast,,2390827,774846,3.09,56.6370122,104.71922099999999,1,Иркутск
150 | RU-IVA,Ivanovo oblast,,997196,21437,46.52,56.9167446,41.43521370000001,1,Иваново
151 | RU-KAM,Kamchatskiy kray,,312438,464275,0.67,57.191488199999995,160.03838190000005,1,Петропавловск-Камчатский
152 | RU-KB,Republic of Kabardino-Balkaria,,868174,12470,69.62,43.44282860000001,43.4204809,1,Нальчик
153 | RU-KC,Republic of Karachaevo-Cherkessia,,465669,14277,32.61,43.7368326,41.7267991,1,Черкесск
154 | RU-KDA,Krasnodarskiy kray,,5677786,75485,75.22,45.768401399999995,39.0261044,1,Краснодар
155 | RU-KEM,Kemerovo oblast,,2657758,95725,27.76,54.53357809999999,87.342861,1,Кемерово
156 | RU-KGD,Kaliningrad oblast,,1012253,15125,66.93,54.7293041,21.1489473,1,Калининград
157 | RU-KGN,Kurgan oblast,,826941,71488,11.57,55.7655302,64.5632681,1,Курган
158 | RU-KHA,Habarovskiy kray,,1315310,787633,1.67,51.6312684,136.121524,1,Хабаровск
159 | RU-KHM,Hanty-Mansiyskiy AO,,1674086,534801,3.13,60.9451642,76.6442272,1,Ханты-Мансийск
160 | RU-KIR,Kirov oblast,,1262549,120374,10.49,57.9665589,49.4074599,1,Киров
161 | RU-KK,Republic of Hakassia,,534186,61569,8.68,53.4399379,90.0664303,1,Абакан
162 | RU-KL,Republic of Kalmykia,,271035,74731,3.63,46.2313018,45.3275745,1,Элиста
163 | RU-KLU,Kaluga oblast,,1000070,29777,33.59,54.438277299999996,35.5272854,1,Калуга
164 | RU-KO,Komi republic,,820171,416774,1.97,63.9881421,54.3326073,1,Сыктывкар
165 | RU-KOS,Kostroma oblast,,633392,60211,10.52,58.424756,44.253327299999995,1,Кострома
166 | RU-KR,Republic of Karelia,,614628,180520,3.4,62.61940309999999,33.4920267,1,Петрозаводск
167 | RU-KRS,Kursk oblast,,1103059,29997,36.77,51.6568453,36.4852695,1,Курск
168 | RU-KYA,Krasnoyarskiy kray,,2867875,2366797,1.21,63.3233807,97.09799740000001,1,Красноярск
169 | RU-LEN,Leningradskaya oblast,,1876392,83908,22.36,60.185329599999996,32.3925325,1,Санкт-Петербург
170 | RU-LIP,Lipetsk oblast,,1139492,24047,47.39,52.693517799999995,39.112266399999996,1,Липецк
171 | RU-MAG,Magadan oblast,,140199,462464,0.3,63.551502799999994,154.014726,1,Магадан
172 | RU-ME,Republic of Mariy El,,679094,23375,29.05,56.576750399999995,47.881751200000004,1,Йошкар-Ола
173 | RU-MO,Republic of Mordovia,,790829,26128,30.27,54.3376037,44.772922799999996,1,Саранск
174 | RU-MOS,Moscow oblast,,7687647,44329,173.42,55.50431579999999,38.0353929,1,Красногорск
175 | RU-MOW,Moscow,,12692466,2561,4956.06,55.479204599999996,37.3273304,1,Москва
176 | RU-MUR,Murmansk oblast,,741511,144902,5.12,68.00004179999999,33.9999151,1,Мурманск
177 | RU-NEN,Nenetskiy autonomous oblast,,44110,176810,0.25,67.6783253,57.0626853,1,Нарьян-Мар
178 | RU-NGR,Novgorod oblast,,596173,54501,10.94,58.2843833,32.516975699999996,1,Великий Новгород
179 | RU-NIZ,Nizhegorodskaya oblast,,3203818,76624,41.81,55.47180329999999,44.091159399999995,1,Нижний Новгород
180 | RU-NVS,Novosibirsk oblast,,2798251,177756,15.74,54.9720169,79.48139240000002,1,Новосибирск
181 | RU-OMS,Omsk oblast,,1926562,141140,13.65,56.09352629999999,73.5099936,1,Омск
182 | RU-ORE,Orenburg oblast,,1956256,123702,15.81,52.02692620000001,54.7276647,1,Оренбург
183 | RU-ORL,Orel oblast,,733682,24652,29.76,52.839276500000004,36.4251709,1,Орёл
184 | RU-PER,Perm oblast,,2599301,160236,16.22,58.5951603,56.3159546,1,Пермь
185 | RU-PNZ,Pensa oblast,,1304825,43352,30.1,53.1655415,44.78791810000001,1,Пенза
186 | RU-PRI,Primorskiy kray,,1895305,164673,11.51,45.0819456,134.726645,1,Владивосток
187 | RU-PSK,Pskov oblast,,626046,55399,11.3,57.535872899999994,28.8586826,1,Псков
188 | RU-ROS,Rostov oblast,,4195327,100967,41.55,47.6222451,40.7957942,1,Ростов-на-Дону
189 | RU-RYA,Ryazan oblast,,1108924,39605,28.0,54.42267320000001,40.57052460000001,1,Рязань
190 | RU-SA,Saha republic,,970105,3083523,0.31,66.941626,129.642371,1,Якутск
191 | RU-SAK,Sakhalin oblast,,488453,87101,5.61,49.7219665,143.448533,1,Южно-Сахалинск
192 | RU-SAM,Samara oblast,,3179026,53565,59.35,53.2128813,50.8914633,1,Самара
193 | RU-SAR,Saratov oblast,,2421785,101240,23.92,51.652055499999996,46.86319520000001,1,Саратов
194 | RU-SE,Republic of North Osetia - Alania,,697064,7987,87.27,42.79371695,43.91586205969284,1,Владикавказ
195 | RU-SMO,Smolensk oblast,,934747,49779,18.78,55.03434960000001,33.0192065,1,Смоленск
196 | RU-SPE,Saint Petersburg,,5392992,1403,3843.9,59.960673899999996,30.158655100000004,1,Санкт-Петербург
197 | RU-STA,Stavropolskiy kray,,2803021,66160,42.37,44.86325770000001,43.4406913,1,Ставрополь
198 | RU-SVE,Sverdlov oblast,,4310861,194307,22.19,58.6414755,61.802154599999994,1,Екатеринбург
199 | RU-TA,Republic of Tatarstan,,3902642,67847,57.52,55.44821700000001,50.4763591,1,Казань
200 | RU-TAM,Tambov oblast,,1006962,34462,29.22,52.9019574,41.3578918,1,Тамбов
201 | RU-TOM,Tomsk oblast,,1079051,314391,3.43,58.6124279,82.04753149999998,1,Томск
202 | RU-TUL,Tula oblast,,1466025,25679,57.09,53.9570701,37.369090899999996,1,Тула
203 | RU-TVE,Tver oblast,,1260345,84201,14.97,57.1134475,35.174442799999994,1,Тверь
204 | RU-TY,Republic of Tyva,,327388,168604,1.94,51.401714899999995,93.8582593,1,Кызыл
205 | RU-TYU,Tumen oblast,,3755778,160122,9.6,58.820649,70.365884,1,Тюмень
206 | RU-UD,Republic of Udmurtia,,1501005,42061,35.69,57.1961165,52.69598320000001,1,Ижевск
207 | RU-ULY,Ulianovsk oblast,,1229687,37181,33.07,54.146317700000004,47.2324921,1,Ульяновск
208 | RU-VGG,Volgograd oblast,,2491751,112877,22.07,49.604833899999996,44.29035820000001,1,Волгоград
209 | RU-VLA,Vladimir oblast,,1358538,29084,46.71,56.0503336,40.656163299999996,1,Владимир
210 | RU-VLG,Vologda oblast,,1160721,144527,8.02,60.0391461,43.1215213,1,Вологда
211 | RU-VOR,Voronezh oblast,,2323657,52216,44.5,50.9800393,40.15065070000001,1,Воронеж
212 | RU-YAN,Yamalo-Nenetskiy AO,,544008,769250,0.71,67.1471631,74.3415488,1,Салехард
213 | RU-YAR,Yaroslavl oblast,,1253189,36177,34.64,57.77819760000001,39.002109499999996,1,Ярославль
214 | RU-YEV,Jewish Autonomous oblast,,158381,36271,4.37,48.5601613,132.2775662,1,Биробиджан
215 | RU-ZAB,Zabaykalskiy kray,,1059657,431892,2.45,52.248521000000004,115.956325,1,Чита
216 | RUS,Russia,RU,145934462,16376870,9.0,60.0,90.0,0,
217 | RWA,Rwanda,RW,12952218,24670,525.0,-1.9403,29.8739,0,
218 | SAU,Saudi Arabia,SA,34813871,2149690,16.0,24.0,45.0,0,
219 | SDN,Sudan,SD,43849260,1765048,25.0,12.8628,30.2176,0,
220 | SEN,Senegal,SN,16743927,192530,87.0,14.4974,-14.4524,0,
221 | SGP,Singapore,SG,5850342,700,8358.0,1.2833,103.8333,0,
222 | SLV,El Salvador,SV,6486205,20720,313.0,13.7942,-88.8965,0,
223 | SMR,San Marino,SM,33931,60,566.0,43.9424,12.4578,0,
224 | SOM,Somalia,SO,15893222,627340,25.0,5.1521,46.1996,0,
225 | SRB,Serbia,RS,8737371,87460,100.0,44.0165,21.0059,0,
226 | SUR,Suriname,SR,586632,156000,4.0,3.9193,-56.0278,0,
227 | SVK,Slovakia,SK,5459642,48088,114.0,48.669,19.699,0,
228 | SVN,Slovenia,SI,2078938,20140,103.0,46.1512,14.9955,0,
229 | SWE,Sweden,SE,10099265,410340,25.0,63.0,16.0,0,
230 | SWZ,Eswatini,SZ,1160164,17200,67.0,-26.5225,31.4659,0,
231 | SYC,Seychelles,SC,98347,460,214.0,-4.6796,55.492,0,
232 | SYR,Syria,SY,17500658,183630,95.0,34.802075,38.99681500000001,0,
233 | TCD,Chad,TD,16425864,1259200,13.0,15.4542,18.7322,0,
234 | TGO,Togo,TG,8278724,54390,152.0,8.6195,0.8248,0,
235 | THA,Thailand,TH,69799978,510890,137.0,15.0,101.0,0,
236 | TLS,Timor-Leste,TL,1318445,14870,89.0,-8.874217,125.727539,0,
237 | TTO,Trinidad and Tobago,TT,1399488,5130,273.0,10.6918,-61.2225,0,
238 | TUN,Tunisia,TN,11818619,155360,76.0,34.0,9.0,0,
239 | TUR,Turkey,TR,84339067,769630,110.0,38.9637,35.2433,0,
240 | TWN,Taiwan*,TW,23816775,35410,673.0,23.7,121.0,0,
241 | TZA,Tanzania,TZ,59734218,885800,67.0,-6.369,34.8888,0,
242 | UA-40,Sevastopol,,448829,864,519.48,44.6054434,33.5220842,1,Севастополь
243 | UA-43,Republic of Crimea,,1912025,26081,73.31,45.1890034,34.7401104,1,Симферополь
244 | UGA,Uganda,UG,45741007,199810,229.0,1.0,32.0,0,
245 | UKR,Ukraine,UA,43733762,579320,75.0,48.3794,31.1656,0,
246 | URY,Uruguay,UY,3473730,175020,20.0,-32.5228,-55.7658,0,
247 | USA,US,US,331002651,9147420,36.0,37.0902,-95.7129,0,
248 | UZB,Uzbekistan,UZ,33469203,425400,79.0,41.3775,64.5853,0,
249 | VAT,Holy See,VA,801,0,2003.0,41.9029,12.4534,0,
250 | VCT,Saint Vincent and the Grenadines,VC,110940,390,284.0,12.9843,-61.2872,0,
251 | VEN,Venezuela,VE,28435940,882050,32.0,6.4238,-66.5897,0,
252 | VNM,Vietnam,VN,97338579,310070,314.0,16.0,108.0,0,
253 | ZAF,South Africa,ZA,59308690,1213090,49.0,-30.5595,22.9375,0,
254 | ZMB,Zambia,ZM,18383955,743390,25.0,-15.4167,28.2833,0,
255 | ZWE,Zimbabwe,ZW,14862924,386850,38.0,-20.0,30.0,0,
256 |
--------------------------------------------------------------------------------
/notebooks/parsers/TopologyVec.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "code",
5 | "execution_count": 1,
6 | "metadata": {},
7 | "outputs": [
8 | {
9 | "name": "stdout",
10 | "output_type": "stream",
11 | "text": [
12 | "/home/tyz910/src/sberbank-covid19\n"
13 | ]
14 | }
15 | ],
16 | "source": [
17 | "cd '../..'"
18 | ]
19 | },
20 | {
21 | "cell_type": "code",
22 | "execution_count": 2,
23 | "metadata": {},
24 | "outputs": [],
25 | "source": [
26 | "import numpy as np\n",
27 | "import pandas as pd"
28 | ]
29 | },
30 | {
31 | "cell_type": "code",
32 | "execution_count": 3,
33 | "metadata": {},
34 | "outputs": [
35 | {
36 | "data": {
37 | "text/html": [
38 | "\n",
39 | "\n",
52 | "
\n",
53 | " \n",
54 | " \n",
55 | " | \n",
56 | " City | \n",
57 | " Region | \n",
58 | " FeatureVectorGlobal | \n",
59 | " RegionFeatureVectorGlobal | \n",
60 | "
\n",
61 | " \n",
62 | " \n",
63 | " \n",
64 | " | 0 | \n",
65 | " Жердевка | \n",
66 | " RU-TAM | \n",
67 | " [0.42070268, 0.08929207, 0.13081052, 0.3453055... | \n",
68 | " [0.3632250641166429, 0.0754754951122764, 0.092... | \n",
69 | "
\n",
70 | " \n",
71 | " | 1 | \n",
72 | " Усинск | \n",
73 | " RU-KO | \n",
74 | " [0.361566081, 0.214654864, 0.230622592, 0.3064... | \n",
75 | " [0.3550156410823592, 0.12492862473656212, 0.14... | \n",
76 | "
\n",
77 | " \n",
78 | " | 2 | \n",
79 | " Чумикан | \n",
80 | " RU-NVS | \n",
81 | " [0.41020059, 0.0, 0.0, 0.0, 0.0, 0.4926865, 0.... | \n",
82 | " [0.3855945158075501, 0.055935850715607985, 0.0... | \n",
83 | "
\n",
84 | " \n",
85 | " | 3 | \n",
86 | " Югорск | \n",
87 | " RU-KHM | \n",
88 | " [0.39298317, 0.04778491, 0.17682518, 0.3054563... | \n",
89 | " [0.34216139363004183, 0.07921267588526748, 0.1... | \n",
90 | "
\n",
91 | " \n",
92 | " | 4 | \n",
93 | " Новосокольники | \n",
94 | " RU-PSK | \n",
95 | " [0.335364739, 0.0, 0.0, 0.226185878, 0.2419435... | \n",
96 | " [0.367303909009541, 0.018280402384952755, 0.02... | \n",
97 | "
\n",
98 | " \n",
99 | "
\n",
100 | "
"
101 | ],
102 | "text/plain": [
103 | " City Region FeatureVectorGlobal \\\n",
104 | "0 Жердевка RU-TAM [0.42070268, 0.08929207, 0.13081052, 0.3453055... \n",
105 | "1 Усинск RU-KO [0.361566081, 0.214654864, 0.230622592, 0.3064... \n",
106 | "2 Чумикан RU-NVS [0.41020059, 0.0, 0.0, 0.0, 0.0, 0.4926865, 0.... \n",
107 | "3 Югорск RU-KHM [0.39298317, 0.04778491, 0.17682518, 0.3054563... \n",
108 | "4 Новосокольники RU-PSK [0.335364739, 0.0, 0.0, 0.226185878, 0.2419435... \n",
109 | "\n",
110 | " RegionFeatureVectorGlobal \n",
111 | "0 [0.3632250641166429, 0.0754754951122764, 0.092... \n",
112 | "1 [0.3550156410823592, 0.12492862473656212, 0.14... \n",
113 | "2 [0.3855945158075501, 0.055935850715607985, 0.0... \n",
114 | "3 [0.34216139363004183, 0.07921267588526748, 0.1... \n",
115 | "4 [0.367303909009541, 0.018280402384952755, 0.02... "
116 | ]
117 | },
118 | "execution_count": 3,
119 | "metadata": {},
120 | "output_type": "execute_result"
121 | }
122 | ],
123 | "source": [
124 | "url = 'https://raw.githubusercontent.com/ods-ai-ml4sg/covid19-tutu/master/data/Covid-19-tutu-Region-Vectors.csv'\n",
125 | "region_vec = pd.read_csv(url, sep=';', index_col=0)\n",
126 | "\n",
127 | "region_vec['Region'] = region_vec['Region'].replace({\n",
128 | " 'Adygea': 'RU-AD',\n",
129 | " 'Altai': 'RU-ALT',\n",
130 | " 'Amur': 'RU-AMU',\n",
131 | " 'Arkhangelsk': 'RU-ARK',\n",
132 | " 'Astrakhan': 'RU-AST',\n",
133 | " 'Bashkortostan': 'RU-BA',\n",
134 | " 'Belgorod': 'RU-BEL',\n",
135 | " 'Bryansk': 'RU-BRY',\n",
136 | " 'Buryat': 'RU-BU',\n",
137 | " 'Chechnya': 'RU-CE',\n",
138 | " 'Chelyabinsk': 'RU-CHE',\n",
139 | " 'Chukotka': 'RU-CHU',\n",
140 | " 'Chuvash': 'RU-CU',\n",
141 | " 'Crimea': 'UA-43',\n",
142 | " 'Dagestan': 'RU-DA',\n",
143 | " 'Gorno-Altay': 'RU-AL',\n",
144 | " 'Irkutsk': 'RU-IRK',\n",
145 | " 'Ivanovo': 'RU-IVA',\n",
146 | " 'Kabardino-Balkar': 'RU-KB',\n",
147 | " 'Kaliningrad': 'RU-KGD',\n",
148 | " 'Kalmykia': 'RU-KL',\n",
149 | " 'Kaluga': 'RU-KLU',\n",
150 | " 'Kamchatka': 'RU-KAM',\n",
151 | " 'Karelia': 'RU-KR',\n",
152 | " 'Kemerovo': 'RU-KEM',\n",
153 | " 'Khabarovsk': 'RU-KHA',\n",
154 | " 'Khakassia': 'RU-KK',\n",
155 | " 'Khanty-Mansi': 'RU-KHM',\n",
156 | " 'Kirov': 'RU-KIR',\n",
157 | " 'Komi': 'RU-KO',\n",
158 | " 'Kostroma': 'RU-KOS',\n",
159 | " 'Krasnodar': 'RU-KDA',\n",
160 | " 'Krasnoyarsk': 'RU-KYA',\n",
161 | " 'Kurgan': 'RU-KGN',\n",
162 | " 'Kursk': 'RU-KRS',\n",
163 | " 'Leningrad': 'RU-LEN',\n",
164 | " 'Lipetsk': 'RU-LIP',\n",
165 | " 'Magadan': 'RU-MAG',\n",
166 | " 'Mari El': 'RU-ME',\n",
167 | " 'Mordovia': 'RU-MO',\n",
168 | " 'Moscow City': 'RU-MOW',\n",
169 | " 'Moscow Oblast': 'RU-MOS',\n",
170 | " 'Murmansk': 'RU-MUR',\n",
171 | " 'Nenets': 'RU-NEN',\n",
172 | " 'Nizhny Novgorod': 'RU-NIZ',\n",
173 | " 'North Ossetia-Alania': 'RU-SE',\n",
174 | " 'Novgorod': 'RU-NGR',\n",
175 | " 'Novosibirsk': 'RU-NVS',\n",
176 | " 'Omsk': 'RU-OMS',\n",
177 | " 'Orenburg': 'RU-ORE',\n",
178 | " 'Oryol': 'RU-ORL',\n",
179 | " 'Penza': 'RU-PNZ',\n",
180 | " 'Perm': 'RU-PER',\n",
181 | " 'Primorsky': 'RU-PRI',\n",
182 | " 'Pskov': 'RU-PSK',\n",
183 | " 'Rostov': 'RU-ROS',\n",
184 | " 'Ryazan': 'RU-RYA',\n",
185 | " 'Saint Petersburg': 'RU-SPE',\n",
186 | " 'Sakha': 'RU-SA',\n",
187 | " 'Sakhalin': 'RU-SAK',\n",
188 | " 'Samara': 'RU-SAM',\n",
189 | " 'Saratov': 'RU-SAR',\n",
190 | " 'Smolensk': 'RU-SMO',\n",
191 | " 'Stavropol': 'RU-STA',\n",
192 | " 'Sverdlovsk': 'RU-SVE',\n",
193 | " 'Tambov': 'RU-TAM',\n",
194 | " 'Tatarstan': 'RU-TA',\n",
195 | " 'Tomsk': 'RU-TOM',\n",
196 | " 'Tula': 'RU-TUL',\n",
197 | " 'Tuva': 'RU-TY',\n",
198 | " 'Tver': 'RU-TVE',\n",
199 | " 'Tyumen': 'RU-TYU',\n",
200 | " 'Udmurt': 'RU-UD',\n",
201 | " 'Ulyanovsk': 'RU-ULY',\n",
202 | " 'Vladimir': 'RU-VLA',\n",
203 | " 'Volgograd': 'RU-VGG',\n",
204 | " 'Vologda': 'RU-VLG',\n",
205 | " 'Voronezh': 'RU-VOR',\n",
206 | " 'Yamalo-Nenets': 'RU-YAN',\n",
207 | " 'Yaroslavl': 'RU-YAR',\n",
208 | " 'Yevrey': 'RU-YEV',\n",
209 | " 'Zabaykalsky': 'RU-ZAB',\n",
210 | "})\n",
211 | "\n",
212 | "region_vec = region_vec.dropna()\n",
213 | "region_vec = region_vec[region_vec['Region'].str.startswith('RU-') | region_vec['Region'].str.startswith('UA-')]\n",
214 | "region_vec = region_vec.reset_index(drop=True).drop(columns=['County'])\n",
215 | "\n",
216 | "def read_numpy(x, sep=' '):\n",
217 | " return np.fromstring(x.replace('\\n','').replace('[','').replace(']','').replace(' ',' '), sep=sep)\n",
218 | "\n",
219 | "region_vec['FeatureVectorGlobal'] = region_vec['FeatureVectorGlobal'].apply(read_numpy)\n",
220 | "region_vec['RegionFeatureVectorGlobal'] = region_vec['RegionFeatureVectorGlobal'].apply(lambda x: read_numpy(x, sep=','))\n",
221 | "\n",
222 | "region_vec.head()"
223 | ]
224 | },
225 | {
226 | "cell_type": "code",
227 | "execution_count": 4,
228 | "metadata": {},
229 | "outputs": [],
230 | "source": [
231 | "global_feature_vec = region_vec.groupby('Region')['FeatureVectorGlobal'].apply(lambda x: np.mean(x))\n",
232 | "region_feature_vec = region_vec.groupby('Region')['RegionFeatureVectorGlobal'].apply(lambda x: np.mean(x))\n",
233 | "\n",
234 | "global_feature_vec = pd.DataFrame(\n",
235 | " np.stack(global_feature_vec.values),\n",
236 | " index=global_feature_vec.index, \n",
237 | " columns=[f'global_vec_{i}' for i in range(len(global_feature_vec[0]))]\n",
238 | ")\n",
239 | "\n",
240 | "region_feature_vec = pd.DataFrame(\n",
241 | " np.stack(region_feature_vec.values),\n",
242 | " index=region_feature_vec.index, \n",
243 | " columns=[f'region_vec_{i}' for i in range(len(region_feature_vec[0]))]\n",
244 | ")"
245 | ]
246 | },
247 | {
248 | "cell_type": "code",
249 | "execution_count": 5,
250 | "metadata": {},
251 | "outputs": [
252 | {
253 | "data": {
254 | "text/html": [
255 | "\n",
256 | "\n",
269 | "
\n",
270 | " \n",
271 | " \n",
272 | " | \n",
273 | " global_vec_0 | \n",
274 | " global_vec_1 | \n",
275 | " global_vec_2 | \n",
276 | " global_vec_3 | \n",
277 | " global_vec_4 | \n",
278 | " global_vec_5 | \n",
279 | " global_vec_6 | \n",
280 | " global_vec_7 | \n",
281 | " global_vec_8 | \n",
282 | " global_vec_9 | \n",
283 | " ... | \n",
284 | " region_vec_18 | \n",
285 | " region_vec_19 | \n",
286 | " region_vec_20 | \n",
287 | " region_vec_21 | \n",
288 | " region_vec_22 | \n",
289 | " region_vec_23 | \n",
290 | " region_vec_24 | \n",
291 | " region_vec_25 | \n",
292 | " region_vec_26 | \n",
293 | " region_vec_27 | \n",
294 | "
\n",
295 | " \n",
296 | " | Region | \n",
297 | " | \n",
298 | " | \n",
299 | " | \n",
300 | " | \n",
301 | " | \n",
302 | " | \n",
303 | " | \n",
304 | " | \n",
305 | " | \n",
306 | " | \n",
307 | " | \n",
308 | " | \n",
309 | " | \n",
310 | " | \n",
311 | " | \n",
312 | " | \n",
313 | " | \n",
314 | " | \n",
315 | " | \n",
316 | " | \n",
317 | " | \n",
318 | "
\n",
319 | " \n",
320 | " \n",
321 | " \n",
322 | " | RU-AL | \n",
323 | " 0.000000 | \n",
324 | " 0.000000 | \n",
325 | " 0.000000 | \n",
326 | " 0.452819 | \n",
327 | " 0.000000 | \n",
328 | " 0.702197 | \n",
329 | " 0.000000 | \n",
330 | " 0.549030 | \n",
331 | " 0.000000 | \n",
332 | " 0.000000 | \n",
333 | " ... | \n",
334 | " 0.000000 | \n",
335 | " 0.000000 | \n",
336 | " 0.507060 | \n",
337 | " 0.000000 | \n",
338 | " 0.077286 | \n",
339 | " 0.403600 | \n",
340 | " 0.311478 | \n",
341 | " 0.459938 | \n",
342 | " 1.249377 | \n",
343 | " 0.857575 | \n",
344 | "
\n",
345 | " \n",
346 | " | RU-ALT | \n",
347 | " 0.484435 | \n",
348 | " 0.089653 | \n",
349 | " 0.113507 | \n",
350 | " 0.370441 | \n",
351 | " 0.168138 | \n",
352 | " 0.383360 | \n",
353 | " 0.283629 | \n",
354 | " 0.256372 | \n",
355 | " 0.045218 | \n",
356 | " 0.339982 | \n",
357 | " ... | \n",
358 | " 0.253655 | \n",
359 | " 0.311595 | \n",
360 | " 0.155869 | \n",
361 | " 0.107633 | \n",
362 | " 0.058122 | \n",
363 | " 0.173540 | \n",
364 | " 0.173304 | \n",
365 | " 0.234957 | \n",
366 | " 0.551048 | \n",
367 | " 0.255698 | \n",
368 | "
\n",
369 | " \n",
370 | " | RU-AMU | \n",
371 | " 0.394185 | \n",
372 | " 0.134847 | \n",
373 | " 0.168928 | \n",
374 | " 0.319504 | \n",
375 | " 0.279485 | \n",
376 | " 0.408746 | \n",
377 | " 0.268616 | \n",
378 | " 0.280660 | \n",
379 | " 0.110301 | \n",
380 | " 0.428014 | \n",
381 | " ... | \n",
382 | " 0.247897 | \n",
383 | " 0.027353 | \n",
384 | " 0.003331 | \n",
385 | " 0.093586 | \n",
386 | " 0.000000 | \n",
387 | " 0.000000 | \n",
388 | " 0.344378 | \n",
389 | " 0.059900 | \n",
390 | " 0.197358 | \n",
391 | " 0.024041 | \n",
392 | "
\n",
393 | " \n",
394 | " | RU-ARK | \n",
395 | " 0.382124 | \n",
396 | " 0.077248 | \n",
397 | " 0.108203 | \n",
398 | " 0.265538 | \n",
399 | " 0.279229 | \n",
400 | " 0.449093 | \n",
401 | " 0.225433 | \n",
402 | " 0.186854 | \n",
403 | " 0.075266 | \n",
404 | " 0.527861 | \n",
405 | " ... | \n",
406 | " 0.173217 | \n",
407 | " 0.036821 | \n",
408 | " 0.014561 | \n",
409 | " 0.023181 | \n",
410 | " 0.003009 | \n",
411 | " 0.060700 | \n",
412 | " 0.374935 | \n",
413 | " 0.074795 | \n",
414 | " 0.281650 | \n",
415 | " 0.034885 | \n",
416 | "
\n",
417 | " \n",
418 | " | RU-AST | \n",
419 | " 0.292962 | \n",
420 | " 0.044975 | \n",
421 | " 0.095047 | \n",
422 | " 0.352886 | \n",
423 | " 0.178217 | \n",
424 | " 0.520038 | \n",
425 | " 0.187993 | \n",
426 | " 0.373679 | \n",
427 | " 0.050467 | \n",
428 | " 0.333248 | \n",
429 | " ... | \n",
430 | " 0.357317 | \n",
431 | " 0.267532 | \n",
432 | " 0.149067 | \n",
433 | " 0.137098 | \n",
434 | " 0.019323 | \n",
435 | " 0.167761 | \n",
436 | " 0.217717 | \n",
437 | " 0.176453 | \n",
438 | " 0.446762 | \n",
439 | " 0.273117 | \n",
440 | "
\n",
441 | " \n",
442 | "
\n",
443 | "
5 rows × 56 columns
\n",
444 | "
"
445 | ],
446 | "text/plain": [
447 | " global_vec_0 global_vec_1 global_vec_2 global_vec_3 global_vec_4 \\\n",
448 | "Region \n",
449 | "RU-AL 0.000000 0.000000 0.000000 0.452819 0.000000 \n",
450 | "RU-ALT 0.484435 0.089653 0.113507 0.370441 0.168138 \n",
451 | "RU-AMU 0.394185 0.134847 0.168928 0.319504 0.279485 \n",
452 | "RU-ARK 0.382124 0.077248 0.108203 0.265538 0.279229 \n",
453 | "RU-AST 0.292962 0.044975 0.095047 0.352886 0.178217 \n",
454 | "\n",
455 | " global_vec_5 global_vec_6 global_vec_7 global_vec_8 global_vec_9 \\\n",
456 | "Region \n",
457 | "RU-AL 0.702197 0.000000 0.549030 0.000000 0.000000 \n",
458 | "RU-ALT 0.383360 0.283629 0.256372 0.045218 0.339982 \n",
459 | "RU-AMU 0.408746 0.268616 0.280660 0.110301 0.428014 \n",
460 | "RU-ARK 0.449093 0.225433 0.186854 0.075266 0.527861 \n",
461 | "RU-AST 0.520038 0.187993 0.373679 0.050467 0.333248 \n",
462 | "\n",
463 | " ... region_vec_18 region_vec_19 region_vec_20 region_vec_21 \\\n",
464 | "Region ... \n",
465 | "RU-AL ... 0.000000 0.000000 0.507060 0.000000 \n",
466 | "RU-ALT ... 0.253655 0.311595 0.155869 0.107633 \n",
467 | "RU-AMU ... 0.247897 0.027353 0.003331 0.093586 \n",
468 | "RU-ARK ... 0.173217 0.036821 0.014561 0.023181 \n",
469 | "RU-AST ... 0.357317 0.267532 0.149067 0.137098 \n",
470 | "\n",
471 | " region_vec_22 region_vec_23 region_vec_24 region_vec_25 \\\n",
472 | "Region \n",
473 | "RU-AL 0.077286 0.403600 0.311478 0.459938 \n",
474 | "RU-ALT 0.058122 0.173540 0.173304 0.234957 \n",
475 | "RU-AMU 0.000000 0.000000 0.344378 0.059900 \n",
476 | "RU-ARK 0.003009 0.060700 0.374935 0.074795 \n",
477 | "RU-AST 0.019323 0.167761 0.217717 0.176453 \n",
478 | "\n",
479 | " region_vec_26 region_vec_27 \n",
480 | "Region \n",
481 | "RU-AL 1.249377 0.857575 \n",
482 | "RU-ALT 0.551048 0.255698 \n",
483 | "RU-AMU 0.197358 0.024041 \n",
484 | "RU-ARK 0.281650 0.034885 \n",
485 | "RU-AST 0.446762 0.273117 \n",
486 | "\n",
487 | "[5 rows x 56 columns]"
488 | ]
489 | },
490 | "execution_count": 5,
491 | "metadata": {},
492 | "output_type": "execute_result"
493 | }
494 | ],
495 | "source": [
496 | "ru_regions_vec = global_feature_vec.join(region_feature_vec)\n",
497 | "ru_regions_vec.to_csv('data/regions_ru_vec.csv')\n",
498 | "ru_regions_vec.head()"
499 | ]
500 | }
501 | ],
502 | "metadata": {
503 | "kernelspec": {
504 | "display_name": "Python 3",
505 | "language": "python",
506 | "name": "python3"
507 | },
508 | "language_info": {
509 | "codemirror_mode": {
510 | "name": "ipython",
511 | "version": 3
512 | },
513 | "file_extension": ".py",
514 | "mimetype": "text/x-python",
515 | "name": "python",
516 | "nbconvert_exporter": "python",
517 | "pygments_lexer": "ipython3",
518 | "version": "3.6.10"
519 | }
520 | },
521 | "nbformat": 4,
522 | "nbformat_minor": 4
523 | }
524 |
--------------------------------------------------------------------------------
/notebooks/models/SimpleWeek2.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "code",
5 | "execution_count": 1,
6 | "metadata": {},
7 | "outputs": [
8 | {
9 | "name": "stdout",
10 | "output_type": "stream",
11 | "text": [
12 | "/home/tyz910/src/sberbank-covid19\n"
13 | ]
14 | }
15 | ],
16 | "source": [
17 | "cd '../..'"
18 | ]
19 | },
20 | {
21 | "cell_type": "markdown",
22 | "metadata": {},
23 | "source": [
24 | "# Самое простое решение для топ 3 второй недели"
25 | ]
26 | },
27 | {
28 | "cell_type": "code",
29 | "execution_count": 2,
30 | "metadata": {},
31 | "outputs": [
32 | {
33 | "data": {
34 | "text/html": [
35 | "\n",
36 | "\n",
49 | "
\n",
50 | " \n",
51 | " \n",
52 | " | \n",
53 | " date | \n",
54 | " country | \n",
55 | " confirmed | \n",
56 | " deaths | \n",
57 | "
\n",
58 | " \n",
59 | " \n",
60 | " \n",
61 | " | 0 | \n",
62 | " 2020-04-19 | \n",
63 | " RU-AD | \n",
64 | " 91 | \n",
65 | " 2 | \n",
66 | "
\n",
67 | " \n",
68 | " | 1 | \n",
69 | " 2020-04-19 | \n",
70 | " RU-AL | \n",
71 | " 2 | \n",
72 | " 0 | \n",
73 | "
\n",
74 | " \n",
75 | " | 2 | \n",
76 | " 2020-04-19 | \n",
77 | " RU-ALT | \n",
78 | " 72 | \n",
79 | " 0 | \n",
80 | "
\n",
81 | " \n",
82 | " | 3 | \n",
83 | " 2020-04-19 | \n",
84 | " RU-AMU | \n",
85 | " 16 | \n",
86 | " 0 | \n",
87 | "
\n",
88 | " \n",
89 | " | 4 | \n",
90 | " 2020-04-19 | \n",
91 | " RU-ARK | \n",
92 | " 107 | \n",
93 | " 0 | \n",
94 | "
\n",
95 | " \n",
96 | "
\n",
97 | "
"
98 | ],
99 | "text/plain": [
100 | " date country confirmed deaths\n",
101 | "0 2020-04-19 RU-AD 91 2\n",
102 | "1 2020-04-19 RU-AL 2 0\n",
103 | "2 2020-04-19 RU-ALT 72 0\n",
104 | "3 2020-04-19 RU-AMU 16 0\n",
105 | "4 2020-04-19 RU-ARK 107 0"
106 | ]
107 | },
108 | "execution_count": 2,
109 | "metadata": {},
110 | "output_type": "execute_result"
111 | }
112 | ],
113 | "source": [
114 | "import numpy as np\n",
115 | "import pandas as pd\n",
116 | "\n",
117 | "train = pd.read_csv('data/week2/train.csv', parse_dates=['date'])\n",
118 | "train.head()"
119 | ]
120 | },
121 | {
122 | "cell_type": "markdown",
123 | "metadata": {},
124 | "source": [
125 | "# Так епта бля.. тут у нас данных мало, коронавирус, хуе-мое, ну вроде растет, но если мы тупа в 2 раза умножим к концу недели, то скор на валидации становится... тааак, падажжи ебана\n",
126 | "\n",
127 | ""
128 | ]
129 | },
130 | {
131 | "cell_type": "code",
132 | "execution_count": 3,
133 | "metadata": {},
134 | "outputs": [
135 | {
136 | "data": {
137 | "text/plain": [
138 | ""
139 | ]
140 | },
141 | "execution_count": 3,
142 | "metadata": {},
143 | "output_type": "execute_result"
144 | },
145 | {
146 | "data": {
147 | "image/png": "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\n",
148 | "text/plain": [
149 | ""
150 | ]
151 | },
152 | "metadata": {
153 | "needs_background": "light"
154 | },
155 | "output_type": "display_data"
156 | }
157 | ],
158 | "source": [
159 | "preds = pd.DataFrame()\n",
160 | "\n",
161 | "for day, mul in enumerate(np.linspace(1.0, 2.0, 8)[1:], 1):\n",
162 | " preds = preds.append(pd.DataFrame({\n",
163 | " 'date': train['date'].max() + pd.to_timedelta(day, 'd'),\n",
164 | " 'country': train['country'],\n",
165 | " 'prediction_confirmed': train['confirmed'] * mul,\n",
166 | " 'prediction_deaths': train['deaths'] * mul,\n",
167 | " }), ignore_index=True)\n",
168 | "\n",
169 | "country = 'RU-MOW'\n",
170 | "preds[preds['country'] == country].set_index('date')[['prediction_confirmed']].plot(title=country)"
171 | ]
172 | },
173 | {
174 | "cell_type": "code",
175 | "execution_count": 4,
176 | "metadata": {},
177 | "outputs": [
178 | {
179 | "data": {
180 | "text/plain": [
181 | "0.49515339458015156"
182 | ]
183 | },
184 | "execution_count": 4,
185 | "metadata": {},
186 | "output_type": "execute_result"
187 | }
188 | ],
189 | "source": [
190 | "validate = pd.read_csv('data/week2/validate.csv', parse_dates=['date'])\n",
191 | "\n",
192 | "data = pd.merge(preds, validate, on=['date', 'country'])\n",
193 | "data['score'] = np.log10((data['confirmed'] + 1.0) / (data['prediction_confirmed'] + 1.0)).abs()\n",
194 | "data.groupby('date')['score'].mean().sum()"
195 | ]
196 | }
197 | ],
198 | "metadata": {
199 | "kernelspec": {
200 | "display_name": "Python 3",
201 | "language": "python",
202 | "name": "python3"
203 | },
204 | "language_info": {
205 | "codemirror_mode": {
206 | "name": "ipython",
207 | "version": 3
208 | },
209 | "file_extension": ".py",
210 | "mimetype": "text/x-python",
211 | "name": "python",
212 | "nbconvert_exporter": "python",
213 | "pygments_lexer": "ipython3",
214 | "version": "3.6.10"
215 | }
216 | },
217 | "nbformat": 4,
218 | "nbformat_minor": 4
219 | }
220 |
--------------------------------------------------------------------------------
/data/time_series/deaths_ru.csv:
--------------------------------------------------------------------------------
1 | UID,iso2,iso3,code3,FIPS,Admin2,Province_State,Country_Region,Lat,Long_,Combined_Key,01/22/20,01/23/20,01/24/20,01/25/20,01/26/20,01/27/20,01/28/20,01/29/20,01/30/20,01/31/20,02/01/20,02/02/20,02/03/20,02/04/20,02/05/20,02/06/20,02/07/20,02/08/20,02/09/20,02/10/20,02/11/20,02/12/20,02/13/20,02/14/20,02/15/20,02/16/20,02/17/20,02/18/20,02/19/20,02/20/20,02/21/20,02/22/20,02/23/20,02/24/20,02/25/20,02/26/20,02/27/20,02/28/20,02/29/20,03/01/20,03/02/20,03/03/20,03/04/20,03/05/20,03/06/20,03/07/20,03/08/20,03/09/20,03/10/20,03/11/20,03/12/20,03/13/20,03/14/20,03/15/20,03/16/20,03/17/20,03/18/20,03/19/20,03/20/20,03/21/20,03/22/20,03/23/20,03/24/20,03/25/20,03/26/20,03/27/20,03/28/20,03/29/20,03/30/20,03/31/20,04/01/20,04/02/20,04/03/20,04/04/20,04/05/20,04/06/20,04/07/20,04/08/20,04/09/20,04/10/20,04/11/20,04/12/20,04/13/20,04/14/20,04/15/20,04/16/20,04/17/20,04/18/20,04/19/20,04/20/20,04/21/20,04/22/20,04/23/20,04/24/20,04/25/20,04/26/20,04/27/20,04/28/20
2 | ,,,,,,Altayskiy kray,Russia,52.129671,82.530013,"Altayskiy kray,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,1,1
3 | ,,,,,,Amursk oblast,Russia,53.413341,127.72806399999999,"Amursk oblast,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
4 | ,,,,,,Arkhangelsk oblast,Russia,64,44,"Arkhangelsk oblast,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1
5 | ,,,,,,Astrahan oblast,Russia,46.851463,47.466189,"Astrahan oblast,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,3,3,3,3,3,3,3,3,3,4,4,4,4
6 | ,,,,,,Belgorod oblast,Russia,50.61074,36.58015,"Belgorod oblast,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,2,2,2,2,2,2,2,2,2,2,2,3
7 | ,,,,,,Briansk oblast,Russia,53.25209,34.37167,"Briansk oblast,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,2,2,2,3,4,4
8 | ,,,,,,Vladimir oblast,Russia,55.904194999999994,40.898894,"Vladimir oblast,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,5,5,5,5,5,5,5,5,5,5,5,5,5
9 | ,,,,,,Volgograd oblast,Russia,48.719390000000004,44.50183,"Volgograd oblast,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,2,2,3,5,6,8,8
10 | ,,,,,,Vologda oblast,Russia,59.535619,38.817766999999996,"Vologda oblast,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
11 | ,,,,,,Voronezh oblast,Russia,51.67204,39.1843,"Voronezh oblast,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,5,5,5,6,7,7,7,8,8,8,8
12 | ,,,,,,Jewish Autonomous oblast,Russia,48.522902,132.25761200000002,"Jewish Autonomous oblast,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
13 | ,,,,,,Zabaykalskiy kray,Russia,52,117,"Zabaykalskiy kray,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
14 | ,,,,,,Ivanovo oblast,Russia,56.99719,40.97139,"Ivanovo oblast,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,2,2,2,2,2,2,2,2,2
15 | ,,,,,,Irkutsk oblast,Russia,57.10029399999999,106.36330500000001,"Irkutsk oblast,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,4,4,4
16 | ,,,,,,Republic of Kabardino-Balkaria,Russia,43.355,42.439170000000004,"Republic of Kabardino-Balkaria,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1
17 | ,,,,,,Kaliningrad oblast,Russia,54.70649,20.51095,"Kaliningrad oblast,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3
18 | ,,,,,,Kaluga oblast,Russia,54.5293,36.275420000000004,"Kaluga oblast,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,2,2,4,6,8,8,8,8,8,8,12
19 | ,,,,,,Kamchatskiy kray,Russia,61.350179000000004,169.782981,"Kamchatskiy kray,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
20 | ,,,,,,Republic of Karachaevo-Cherkessia,Russia,43.770947,41.753928,"Republic of Karachaevo-Cherkessia,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,2
21 | ,,,,,,Kemerovo oblast,Russia,55.333330000000004,86.08333,"Kemerovo oblast,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,2
22 | ,,,,,,Kirov oblast,Russia,58.59665,49.660070000000005,"Kirov oblast,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,3,3,3,3,3,3,3
23 | ,,,,,,Kostroma oblast,Russia,58.456003,43.788495000000005,"Kostroma oblast,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3
24 | ,,,,,,Krasnodarskiy kray,Russia,44.98811,38.97675,"Krasnodarskiy kray,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,3,3,3,3,3,3,3,3,4,5,8,8,11,14,16,18,19,19,19
25 | ,,,,,,Krasnoyarskiy kray,Russia,58,93,"Krasnoyarskiy kray,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,5,5,5,5,5,7
26 | ,,,,,,Kurgan oblast,Russia,55.45,65.33333,"Kurgan oblast,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
27 | ,,,,,,Kursk oblast,Russia,51.535008000000005,36.121347,"Kursk oblast,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,3,3,3,3,4,4,4,4
28 | ,,,,,,Leningradskaya oblast,Russia,60,32,"Leningradskaya oblast,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
29 | ,,,,,,Lipetsk oblast,Russia,52.60311,39.57076,"Lipetsk oblast,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,2,2,2,2,2,2,2,4
30 | ,,,,,,Magadan oblast,Russia,62.575815000000006,154.036835,"Magadan oblast,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2
31 | ,,,,,,Moscow,Russia,55.752219999999994,37.615559999999995,"Moscow,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,4,5,6,6,11,16,19,20,27,29,29,31,31,38,50,58,72,82,95,106,113,127,148,176,204,233,261,288,325,366,404,435,479
32 | ,,,,,,Moscow oblast,Russia,55.81363,36.71631,"Moscow oblast,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,2,2,2,3,8,10,13,13,14,18,19,24,26,33,40,40,49,49,49,56,56,66,69,71,71,74
33 | ,,,,,,Murmansk oblast,Russia,68.97917,33.09251,"Murmansk oblast,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,2,3,3,3,3,3,4,4,4,4,4
34 | ,,,,,,Nenetskiy autonomous oblast,Russia,67.714212,54.365062,"Nenetskiy autonomous oblast,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
35 | ,,,,,,Nizhegorodskaya oblast,Russia,56.328669999999995,44.00205,"Nizhegorodskaya oblast,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,4,4,4,4,4,4,4,5,5,6,7,8,8,8,9,9
36 | ,,,,,,Novgorod oblast,Russia,56.328669999999995,44.00205,"Novgorod oblast,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,2,2,2
37 | ,,,,,,Novosibirsk oblast,Russia,55.0415,82.9346,"Novosibirsk oblast,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,2,3,3,4,4,4,4,4,4,4,4
38 | ,,,,,,Omsk oblast,Russia,56.103472,73.34441600000001,"Omsk oblast,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,1,1
39 | ,,,,,,Orenburg oblast,Russia,51.7727,55.0988,"Orenburg oblast,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2
40 | ,,,,,,Orel oblast,Russia,52.96508000000001,36.07849,"Orel oblast,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,2,2,2
41 | ,,,,,,Pensa oblast,Russia,53.20066,45.00464,"Pensa oblast,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,5,5,5,5,5,5,6,6,6,7
42 | ,,,,,,Perm oblast,Russia,58.010459999999995,56.25017,"Perm oblast,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,4,4,4,4
43 | ,,,,,,Primorskiy kray,Russia,45,135,"Primorskiy kray,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3
44 | ,,,,,,Pskov oblast,Russia,57.8136,28.3496,"Pskov oblast,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,4,4,4,6,6,6,6,6,6,6,6,7,8,8
45 | ,,,,,,Republic of Adygeia,Russia,44.429866,40.252969,"Republic of Adygeia,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,2,2,2,2,3,3,3,3,3,3,3
46 | ,,,,,,Altay republic,Russia,50.73624,87.015454,"Altay republic,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
47 | ,,,,,,Republic of Bashkortostan,Russia,54,56,"Republic of Bashkortostan,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,3,5,5,8,8,10,14,14,14,14,14,14,14,14,14
48 | ,,,,,,Republic of Buriatia,Russia,54.54,112.348699,"Republic of Buriatia,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2
49 | ,,,,,,Republic of Dagestan,Russia,42.26,47.095742,"Republic of Dagestan,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,6,9,9,9,9,11,11,11,11,11,11,11,11
50 | ,,,,,,Ingushetia republic,Russia,43.103590000000004,45.054581,"Ingushetia republic,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,2,2,4,5,5,9,12,13,13,13,13,17,18
51 | ,,,,,,Republic of Kalmykia,Russia,46.414024,45.325701,"Republic of Kalmykia,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,3,3,3,3,3,3,3,3,3,3,3,3
52 | ,,,,,,Republic of Karelia,Russia,63.621324,33.232608,"Republic of Karelia,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
53 | ,,,,,,Komi republic,Russia,64,54,"Komi republic,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,4,4,5,5,5
54 | ,,,,,,Republic of Crimea,Russia,45,34,"Republic of Crimea,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
55 | ,,,,,,Republic of Mariy El,Russia,56.485739,48.197858000000004,"Republic of Mariy El,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3
56 | ,,,,,,Republic of Mordovia,Russia,54.2,44.319669,"Republic of Mordovia,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,2,2,2,2,2
57 | ,,,,,,Saha republic,Russia,62.30161,32.685359999999996,"Saha republic,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1
58 | ,,,,,,Republic of North Osetia - Alania,Russia,43.092669,44.262033,"Republic of North Osetia - Alania,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
59 | ,,,,,,Republic of Tatarstan,Russia,55.333330000000004,51,"Republic of Tatarstan,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
60 | ,,,,,,Republic of Tyva,Russia,51.584332,94.79308499999999,"Republic of Tyva,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
61 | ,,,,,,Republic of Hakassia,Russia,53.715559999999996,91.42917,"Republic of Hakassia,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,2,2,7
62 | ,,,,,,Republic of Chuvashia,Russia,56.13222,47.251940000000005,"Republic of Chuvashia,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,2,5,5,5,5,7,8,8,8
63 | ,,,,,,Rostov oblast,Russia,47.23135,39.723279999999995,"Rostov oblast,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,2
64 | ,,,,,,Ryazan oblast,Russia,54.6269,39.6916,"Ryazan oblast,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3
65 | ,,,,,,Samara oblast,Russia,53.20007,50.15,"Samara oblast,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,5
66 | ,,,,,,Saint Petersburg,Russia,59.93863,30.31413,"Saint Petersburg,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,2,2,2,2,2,2,2,2,2,4,4,4,4,4,4,5,7,7,8,8,8,11,14,17,20,23,27,27,27
67 | ,,,,,,Saratov oblast,Russia,51.54056,46.00861,"Saratov oblast,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2
68 | ,,,,,,Sakhalin oblast,Russia,50.150926,142.750797,"Sakhalin oblast,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
69 | ,,,,,,Sverdlov oblast,Russia,43.25,71.75,"Sverdlov oblast,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1
70 | ,,,,,,Sevastopol,Russia,44.616603999999995,33.525369,"Sevastopol,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
71 | ,,,,,,Smolensk oblast,Russia,54.956192,32.998543,"Smolensk oblast,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,3
72 | ,,,,,,Stavropolskiy kray,Russia,45,44,"Stavropolskiy kray,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,2,2,2,2,2,2,2,3,3,4,5,5,5,5,6,6,6
73 | ,,,,,,Tambov oblast,Russia,52.73169,41.443259999999995,"Tambov oblast,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1
74 | ,,,,,,Tver oblast,Russia,56.85836,35.90057,"Tver oblast,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1
75 | ,,,,,,Tomsk oblast,Russia,56.49771,84.97437,"Tomsk oblast,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
76 | ,,,,,,Tula oblast,Russia,54.196090000000005,37.61822,"Tula oblast,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,3,3,4,5,5,5
77 | ,,,,,,Tumen oblast,Russia,57.15221999999999,65.52722,"Tumen oblast,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,2,2,2,2,2,2,2,2,3,3,3,3
78 | ,,,,,,Republic of Udmurtia,Russia,57,53,"Republic of Udmurtia,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,4,4,4,5,6
79 | ,,,,,,Ulianovsk oblast,Russia,54.32824,48.38657,"Ulianovsk oblast,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,3,3,3,4,4
80 | ,,,,,,Habarovskiy kray,Russia,48.48271,135.08379,"Habarovskiy kray,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,2,2,2,2,2,2,3,4,4,5,5,5,5,5,5,5,5,5
81 | ,,,,,,Hanty-Mansiyskiy AO,Russia,61.004169999999995,69.00194,"Hanty-Mansiyskiy AO,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,2,2
82 | ,,,,,,Cheliabinsk oblast,Russia,55.154019999999996,61.42915,"Cheliabinsk oblast,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
83 | ,,,,,,Chechen republic,Russia,43.2,45.78889,"Chechen republic,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,3,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,7
84 | ,,,,,,Chukotskiy autonomous oblast,Russia,65.982613,174.432311,"Chukotskiy autonomous oblast,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
85 | ,,,,,,Yamalo-Nenetskiy AO,Russia,66.086435,80.005397,"Yamalo-Nenetskiy AO,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
86 | ,,,,,,Yaroslavl oblast,Russia,57.62987,39.87368,"Yaroslavl oblast,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,2,2,3,3
87 |
--------------------------------------------------------------------------------
/data/time_series/confirmed_ru.csv:
--------------------------------------------------------------------------------
1 | UID,iso2,iso3,code3,FIPS,Admin2,Province_State,Country_Region,Lat,Long_,Combined_Key,01/22/20,01/23/20,01/24/20,01/25/20,01/26/20,01/27/20,01/28/20,01/29/20,01/30/20,01/31/20,02/01/20,02/02/20,02/03/20,02/04/20,02/05/20,02/06/20,02/07/20,02/08/20,02/09/20,02/10/20,02/11/20,02/12/20,02/13/20,02/14/20,02/15/20,02/16/20,02/17/20,02/18/20,02/19/20,02/20/20,02/21/20,02/22/20,02/23/20,02/24/20,02/25/20,02/26/20,02/27/20,02/28/20,02/29/20,03/01/20,03/02/20,03/03/20,03/04/20,03/05/20,03/06/20,03/07/20,03/08/20,03/09/20,03/10/20,03/11/20,03/12/20,03/13/20,03/14/20,03/15/20,03/16/20,03/17/20,03/18/20,03/19/20,03/20/20,03/21/20,03/22/20,03/23/20,03/24/20,03/25/20,03/26/20,03/27/20,03/28/20,03/29/20,03/30/20,03/31/20,04/01/20,04/02/20,04/03/20,04/04/20,04/05/20,04/06/20,04/07/20,04/08/20,04/09/20,04/10/20,04/11/20,04/12/20,04/13/20,04/14/20,04/15/20,04/16/20,04/17/20,04/18/20,04/19/20,04/20/20,04/21/20,04/22/20,04/23/20,04/24/20,04/25/20,04/26/20,04/27/20,04/28/20
2 | ,,,,,,Altayskiy kray,Russia,52.129671,82.530013,"Altayskiy kray,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,3,4,4,7,7,12,12,18,21,21,29,29,31,36,39,48,53,63,72,84,127,136,144,152,215,283,310,324
3 | ,,,,,,Amursk oblast,Russia,53.413341,127.72806399999999,"Amursk oblast,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,4,4,4,4,4,4,4,6,17,6,6,6,9,11,14,16,20,20,23,25,28,33,36,40,41
4 | ,,,,,,Arkhangelsk oblast,Russia,64,44,"Arkhangelsk oblast,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,7,7,7,7,8,8,8,14,14,14,24,24,24,24,31,32,32,33,34,39,107,114,118,120,123,137,147,167,175,181
5 | ,,,,,,Astrahan oblast,Russia,46.851463,47.466189,"Astrahan oblast,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,5,5,5,5,5,5,21,21,21,29,30,30,47,60,64,99,123,136,137,148,165,186,211,277,298,306
6 | ,,,,,,Belgorod oblast,Russia,50.61074,36.58015,"Belgorod oblast,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,2,5,5,5,6,6,7,7,11,14,18,18,26,26,31,31,41,45,58,70,81,90,112,122,144,176,202,221,242,269,299
7 | ,,,,,,Briansk oblast,Russia,53.25209,34.37167,"Briansk oblast,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,3,3,3,3,5,5,7,19,19,24,56,57,97,97,123,141,142,142,164,201,228,256,279,321,350,399,459,494,521,599,642,668
8 | ,,,,,,Vladimir oblast,Russia,55.904194999999994,40.898894,"Vladimir oblast,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,3,3,3,3,3,5,12,14,38,42,48,71,84,100,145,159,183,198,225,259,280,293,339,381,426,475,518,597
9 | ,,,,,,Volgograd oblast,Russia,48.719390000000004,44.50183,"Volgograd oblast,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,4,4,4,4,4,8,8,8,8,8,15,26,26,26,28,33,38,44,46,47,58,62,79,93,111,134,145,165,186,212,242,272,297
10 | ,,,,,,Vologda oblast,Russia,59.535619,38.817766999999996,"Vologda oblast,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,9,12,12,13,13,23,23,27,35,38,39,42,43,50,52,67,77,86,93,100,107,114,120,129,138,145,155,160
11 | ,,,,,,Voronezh oblast,Russia,51.67204,39.1843,"Voronezh oblast,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,6,6,6,6,6,8,12,12,12,14,14,23,23,33,33,37,37,49,60,68,75,89,108,130,156,180,211,236,261,291,313,338,358,420
12 | ,,,,,,Jewish Autonomous oblast,Russia,48.522902,132.25761200000002,"Jewish Autonomous oblast,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,6,6,8,8,8,9,9,9,10,16,19,20,22,43,52,66,80,86,86,101,113
13 | ,,,,,,Zabaykalskiy kray,Russia,52,117,"Zabaykalskiy kray,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,4,4,8,14,14,14,28,30,33,34,43,50,61,64,73,83,90,96,103
14 | ,,,,,,Ivanovo oblast,Russia,56.99719,40.97139,"Ivanovo oblast,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,2,7,7,9,9,11,11,13,23,23,33,47,47,60,60,62,80,86,96,121,136,149,164,183,203,213,225,239,247,263,274,282,296
15 | ,,,,,,Irkutsk oblast,Russia,57.10029399999999,106.36330500000001,"Irkutsk oblast,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,3,3,7,8,8,8,11,14,14,17,21,23,28,35,39,39,45,47,54,55,65,68,75,75,80,85,87,87,95
16 | ,,,,,,Republic of Kabardino-Balkaria,Russia,43.355,42.439170000000004,"Republic of Kabardino-Balkaria,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4,4,6,6,8,8,8,8,8,8,13,23,23,27,30,35,50,50,50,69,92,114,136,152,170,193,218,243,272,300,329,367
17 | ,,,,,,Kaliningrad oblast,Russia,54.70649,20.51095,"Kaliningrad oblast,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,8,8,11,11,12,12,12,19,19,19,19,19,48,49,52,62,65,70,74,79,84,92,104,115,126,138,144,163,171,189,210,236,264,303
18 | ,,,,,,Kaluga oblast,Russia,54.5293,36.275420000000004,"Kaluga oblast,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,3,3,3,5,5,6,6,7,11,11,11,18,24,24,34,49,74,102,122,151,188,228,258,330,383,444,513,583,639,706
19 | ,,,,,,Kamchatskiy kray,Russia,61.350179000000004,169.782981,"Kamchatskiy kray,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,5,5,10,10,10,10,10,21,29,29,34,41,48,63,78,84,87,110,195,203
20 | ,,,,,,Republic of Karachaevo-Cherkessia,Russia,43.770947,41.753928,"Republic of Karachaevo-Cherkessia,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,5,6,9,9,11,13,16,23,30,49,50,67,87,106,145,169,194,240,282,301,314
21 | ,,,,,,Kemerovo oblast,Russia,55.333330000000004,86.08333,"Kemerovo oblast,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,3,3,3,3,3,3,3,3,3,3,5,5,7,7,11,12,12,14,14,15,18,22,26,35,41,47,56,67,76,82,103,107,111
22 | ,,,,,,Kirov oblast,Russia,58.59665,49.660070000000005,"Kirov oblast,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,8,8,9,12,12,12,12,15,18,18,18,20,20,28,29,35,36,51,51,64,73,91,111,150,169,188,216,240,276,316,362,388,423
23 | ,,,,,,Kostroma oblast,Russia,58.456003,43.788495000000005,"Kostroma oblast,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,3,3,3,3,8,8,9,9,9,12,15,15,18,18,18,27,38,47,53,66,70,81,88,104,120,137,148,158,180
24 | ,,,,,,Krasnodarskiy kray,Russia,44.98811,38.97675,"Krasnodarskiy kray,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,9,9,17,17,17,17,22,22,39,39,39,50,61,85,105,125,138,169,210,215,239,260,290,335,383,417,461,481,539,623,707,780,837,888
25 | ,,,,,,Krasnoyarskiy kray,Russia,58,93,"Krasnoyarskiy kray,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,8,8,12,12,14,14,20,25,25,25,29,32,32,39,39,39,60,85,110,131,142,202,231,276,300,306,370,392,427,449,467,508,527,574
26 | ,,,,,,Kurgan oblast,Russia,55.45,65.33333,"Kurgan oblast,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,10,11,12,13,13,13,15,15,20,22,27,29,31,33
27 | ,,,,,,Kursk oblast,Russia,51.535008000000005,36.121347,"Kursk oblast,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,4,4,4,4,4,10,20,21,42,43,58,58,89,120,145,170,196,220,242,276,308,345,389,456,525,590
28 | ,,,,,,Leningradskaya oblast,Russia,60,32,"Leningradskaya oblast,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,7,9,11,14,20,31,41,47,57,62,62,94,112,129,134,139,155,190,298,330,354,388,417,454,496,537,576,615,658,700,743,781
29 | ,,,,,,Lipetsk oblast,Russia,52.60311,39.57076,"Lipetsk oblast,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,8,9,10,10,11,15,18,18,18,26,26,44,48,55,58,63,69,74,85,96,108,129,149,169,189,213,238,263,284,306,330,356
30 | ,,,,,,Magadan oblast,Russia,62.575815000000006,154.036835,"Magadan oblast,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,2,3,3,18,18,62,63,63,65,67,76,78,87,88,91,92
31 | ,,,,,,Moscow,Russia,55.752219999999994,37.615559999999995,"Moscow,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,8,8,14,18,23,32,32,52,56,87,99,132,138,191,262,290,410,546,703,817,1014,1226,1613,1880,2475,2923,3357,3893,4484,5181,5841,6698,7822,8852,10158,11513,13002,14776,16146,18105,20754,24324,26350,29433,31981,33940,36897,39509,42480,45351,48426
32 | ,,,,,,Moscow oblast,Russia,55.81363,36.71631,"Moscow oblast,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,41,41,49,85,112,119,119,134,177,211,260,305,387,454,549,748,930,1082,1360,1855,2315,2587,3054,3526,3954,4663,5241,5959,6590,7278,7889,8494,9070,9708,10231
33 | ,,,,,,Murmansk oblast,Russia,68.97917,33.09251,"Murmansk oblast,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,3,5,11,11,15,15,15,15,18,18,43,44,67,67,128,128,128,265,306,314,321,354,400,435,506,603,663,856,961,989,1056
34 | ,,,,,,Nenetskiy autonomous oblast,Russia,67.714212,54.365062,"Nenetskiy autonomous oblast,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,2,11,29
35 | ,,,,,,Nizhegorodskaya oblast,Russia,56.328669999999995,44.00205,"Nizhegorodskaya oblast,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,8,8,11,11,11,12,12,25,25,25,47,56,56,80,87,119,152,194,224,292,339,404,458,517,646,759,860,929,1002,1096,1214,1367,1574,1663
36 | ,,,,,,Novgorod oblast,Russia,56.328669999999995,44.00205,"Novgorod oblast,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,3,3,3,3,3,3,3,3,5,5,5,12,18,18,18,26,26,26,53,74,80,98,108,114,140,157,171,186,211,244,254
37 | ,,,,,,Novosibirsk oblast,Russia,55.0415,82.9346,"Novosibirsk oblast,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,5,5,7,8,9,9,10,10,10,10,11,11,11,13,18,21,28,28,36,36,53,64,76,86,108,132,135,151,168,209,247,305,347,407
38 | ,,,,,,Omsk oblast,Russia,56.103472,73.34441600000001,"Omsk oblast,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,7,9,9,10,10,10,14,15,15,17,17,19,20,20,22,23,26,31,33,36,41,45,53,54,58,62,71,82
39 | ,,,,,,Orenburg oblast,Russia,51.7727,55.0988,"Orenburg oblast,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,6,6,7,7,7,12,12,12,12,14,14,22,22,25,25,25,45,53,54,82,120,140,184,184,226,254,277,305,361,377,391,456
40 | ,,,,,,Orel oblast,Russia,52.96508000000001,36.07849,"Orel oblast,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,3,3,3,3,3,3,3,3,6,6,7,12,12,17,24,29,29,34,41,41,73,85,119,132,175,198,238,249,296,321,363,407,460
41 | ,,,,,,Pensa oblast,Russia,53.20066,45.00464,"Pensa oblast,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,7,7,12,16,16,27,27,27,32,51,52,52,67,67,67,84,84,100,107,119,140,140,165,180,196,211,232,255,261,283,322
42 | ,,,,,,Perm oblast,Russia,58.010459999999995,56.25017,"Perm oblast,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,10,10,11,11,13,13,13,20,21,21,21,21,32,32,41,45,45,60,60,87,114,132,144,170,198,215,237,266,287,318,373,434,454,471
43 | ,,,,,,Primorskiy kray,Russia,45,135,"Primorskiy kray,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,4,5,5,7,7,7,7,8,15,20,20,23,24,28,32,36,40,49,67,80,97,104,166,185,220,254,278,302,347
44 | ,,,,,,Pskov oblast,Russia,57.8136,28.3496,"Pskov oblast,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,6,6,6,6,9,9,9,9,9,9,9,10,14,14,16,16,16,16,21,21,27,32,37,42,44,52,58,62,66,81,93,110,124,128
45 | ,,,,,,Republic of Adygeia,Russia,44.429866,40.252969,"Republic of Adygeia,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,4,4,4,5,5,7,7,13,13,13,13,20,20,20,20,27,27,43,79,84,91,100,108,113,114,117,119,134,142,150
46 | ,,,,,,Altay republic,Russia,50.73624,87.015454,"Altay republic,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,2,4,8,8,9,9,14,15,27,27
47 | ,,,,,,Republic of Bashkortostan,Russia,54,56,"Republic of Bashkortostan,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4,5,5,7,8,10,10,10,10,10,12,16,22,40,65,84,107,129,149,191,213,252,252,297,371,396,422,455,490,527,570,631
48 | ,,,,,,Republic of Buriatia,Russia,54.54,112.348699,"Republic of Buriatia,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,8,8,13,19,25,30,31,35,35,43,43,50,54,60,61,73,77,86,92,100,103,112,115,115,125,153,163,167,180,186,209,227
49 | ,,,,,,Republic of Dagestan,Russia,42.26,47.095742,"Republic of Dagestan,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,4,13,15,25,25,25,25,30,43,44,57,58,84,84,84,100,105,154,213,257,292,331,371,417,454,567,724,827,994,1147
50 | ,,,,,,Ingushetia republic,Russia,43.103590000000004,45.054581,"Ingushetia republic,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,7,25,25,29,29,29,34,34,90,153,191,227,269,308,354,397,436,474,515,552,590,633
51 | ,,,,,,Republic of Kalmykia,Russia,46.414024,45.325701,"Republic of Kalmykia,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,2,2,7,7,7,7,11,15,23,23,32,32,32,32,35,36,53,67,74,77,77,88,94,104,122,146,158,167
52 | ,,,,,,Republic of Karelia,Russia,63.621324,33.232608,"Republic of Karelia,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,3,3,7,8,9,15,19,27,30,30,35,37,42,44,56,62
53 | ,,,,,,Komi republic,Russia,64,54,"Komi republic,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,7,22,22,54,56,56,59,59,90,101,119,150,208,208,208,208,305,402,441,455,474,481,491,507,527,542,553,561,578,590,597
54 | ,,,,,,Republic of Crimea,Russia,45,34,"Republic of Crimea,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,19,20,20,20,16,16,16,18,18,20,21,22,23,26,29,29,31,32,32,34,37,40,43,45,45,46,46,51,53,57,67,69,70
55 | ,,,,,,Republic of Mariy El,Russia,56.485739,48.197858000000004,"Republic of Mariy El,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,4,4,4,4,13,13,40,41,63,63,70,80,91,118,147,179,219,262,291,311,333,348,377,407,431,462,500
56 | ,,,,,,Republic of Mordovia,Russia,54.2,44.319669,"Republic of Mordovia,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,3,3,3,4,4,4,5,5,6,6,13,17,19,19,42,58,71,71,71,136,198,258,293,327,357,385,424,469,518,560,592
57 | ,,,,,,Saha republic,Russia,62.30161,32.685359999999996,"Saha republic,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,14,14,14,15,15,15,15,15,15,15,15,15,15,16,16,16,19,22,25,26,33,35,38,47,88,107,111,116,128,137,141,152,159,166
58 | ,,,,,,Republic of North Osetia - Alania,Russia,43.092669,44.262033,"Republic of North Osetia - Alania,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,4,4,5,5,8,9,15,22,27,27,34,34,52,52,52,65,94,120,145,177,211,242,275,305,348,401,549
59 | ,,,,,,Republic of Tatarstan,Russia,55.333330000000004,51,"Republic of Tatarstan,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,10,11,14,14,14,19,19,19,25,25,25,41,41,41,50,50,73,73,84,107,107,128,144,160,191,230,280,355,412,426,491,562,632,697
60 | ,,,,,,Republic of Tyva,Russia,51.584332,94.79308499999999,"Republic of Tyva,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,6,6,6,6,8,9,9,13,13,13,13,14,15,24,27,30,31
61 | ,,,,,,Republic of Hakassia,Russia,53.715559999999996,91.42917,"Republic of Hakassia,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,2,2,2,3,3,3,3,3,3,3,5,5,6,6,9,12,12,12,20,26,27,38,46,68,76,84,87,99,102,151,176,184,206
62 | ,,,,,,Republic of Chuvashia,Russia,56.13222,47.251940000000005,"Republic of Chuvashia,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,3,6,15,17,32,39,50,65,65,78,125,137,164,193,225,235,262,305,348,383,421,463,502
63 | ,,,,,,Rostov oblast,Russia,47.23135,39.723279999999995,"Rostov oblast,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,2,2,2,2,5,5,9,9,9,9,9,17,21,24,29,38,52,78,98,104,145,168,197,232,292,346,398,469,533,584,649,714,778
64 | ,,,,,,Ryazan oblast,Russia,54.6269,39.6916,"Ryazan oblast,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,3,5,5,5,5,6,12,12,17,17,32,32,38,55,71,89,116,116,154,184,225,267,289,316,392,429,475,539,602,687,788
65 | ,,,,,,Samara oblast,Russia,53.20007,50.15,"Samara oblast,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,12,14,14,14,14,15,15,17,17,17,17,17,17,18,18,20,21,24,29,40,40,50,63,64,79,95,103,115,141,185,209,229,264,272
66 | ,,,,,,Saint Petersburg,Russia,59.93863,30.31413,"Saint Petersburg,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4,4,0,0,4,7,8,7,10,11,11,12,16,16,16,16,21,21,26,26,37,42,50,98,125,147,156,171,191,226,295,329,373,408,488,557,678,799,929,1083,1507,1646,1760,1846,1973,2267,2458,2711,2926,3077,3238,3436
67 | ,,,,,,Saratov oblast,Russia,51.54056,46.00861,"Saratov oblast,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,2,2,4,4,15,15,19,19,19,19,25,26,30,34,35,42,44,49,56,70,87,98,114,142,168,190,229,245,265,305,327,359
68 | ,,,,,,Sakhalin oblast,Russia,50.150926,142.750797,"Sakhalin oblast,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4,5,5,5,6,6,6,6,11,11,11,11,11,11,11,12,12,19,19,19,19,19,19,19,20,20,20,21,22
69 | ,,,,,,Sverdlov oblast,Russia,43.25,71.75,"Sverdlov oblast,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,13,20,20,24,24,24,33,33,38,39,40,40,44,51,56,59,61,74,78,85,93,105,111,115,126,141,149,233,243,271,304,337,395,454,539
70 | ,,,,,,Sevastopol,Russia,44.616603999999995,33.525369,"Sevastopol,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,6,6,6,7,8,8,12,12,13,17,18,19,25,25,26,31,34,37
71 | ,,,,,,Smolensk oblast,Russia,54.956192,32.998543,"Smolensk oblast,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,2,2,3,3,7,11,13,17,17,21,55,106,132,139,152,173,189,208,244,251,262,279,289,324,369
72 | ,,,,,,Stavropolskiy kray,Russia,45,44,"Stavropolskiy kray,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,5,5,5,5,6,6,6,11,11,11,11,20,39,39,42,52,66,74,86,95,115,143,155,209,232,244,266,277,332,358,385,421,454,491
73 | ,,,,,,Tambov oblast,Russia,52.73169,41.443259999999995,"Tambov oblast,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,6,6,6,7,7,15,15,21,21,33,33,48,48,83,83,133,133,165,187,209,222,240,263,298,343,399,460,493
74 | ,,,,,,Tver oblast,Russia,56.85836,35.90057,"Tver oblast,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,4,4,5,5,6,6,6,8,8,12,19,24,31,31,75,75,117,151,188,237,270,296,329,356,383,412,441,464,498,507
75 | ,,,,,,Tomsk oblast,Russia,56.49771,84.97437,"Tomsk oblast,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,2,2,3,3,3,3,3,3,3,3,3,3,4,4,4,4,4,8,15,15,21,21,24,29,33,37,43,52,59,66,67,76,81
76 | ,,,,,,Tula oblast,Russia,54.196090000000005,37.61822,"Tula oblast,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,8,11,11,12,12,17,17,17,19,29,39,49,54,66,71,71,74,85,85,130,174,199,229,287,309,384,436,461,505,578,644,713,783
77 | ,,,,,,Tumen oblast,Russia,57.15221999999999,65.52722,"Tumen oblast,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,4,4,6,6,6,11,11,11,11,18,18,19,22,30,39,53,67,85,112,146,185,227,254,290,319,341,357,374,386,399,404
78 | ,,,,,,Republic of Udmurtia,Russia,57,53,"Republic of Udmurtia,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,4,4,4,4,4,4,4,4,5,5,5,9,9,9,11,11,13,13,19,27,42,58,62,66,92,118,152,161,178,193,202,207,212
79 | ,,,,,,Ulianovsk oblast,Russia,54.32824,48.38657,"Ulianovsk oblast,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,2,4,4,6,40,62,70,86,86,104,123,138,157,168,187,187,196,228,253,280,307,331,360
80 | ,,,,,,Habarovskiy kray,Russia,48.48271,135.08379,"Habarovskiy kray,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,5,5,5,7,7,8,9,9,10,10,11,11,16,24,24,28,29,29,54,54,77,91,109,147,185,215,243,272,310,351,379,406,439,467
81 | ,,,,,,Hanty-Mansiyskiy AO,Russia,61.004169999999995,69.00194,"Hanty-Mansiyskiy AO,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,4,4,4,5,5,5,8,8,16,16,19,19,38,41,41,41,41,41,41,56,71,110,128,161,175,188,197,203,215,217,233,274,297,338
82 | ,,,,,,Cheliabinsk oblast,Russia,55.154019999999996,61.42915,"Cheliabinsk oblast,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,5,5,9,12,14,14,21,21,23,26,27,31,32,32,34,34,40,40,43,48,51,53,57,61,68,78,92,102,111,168,240,302,360,408
83 | ,,,,,,Chechen republic,Russia,43.2,45.78889,"Chechen republic,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,3,5,9,9,9,10,10,12,15,15,16,17,22,22,22,30,47,49,64,105,108,115,175,219,264,303,323,347,365,387,409,429,447
84 | ,,,,,,Chukotskiy autonomous oblast,Russia,65.982613,174.432311,"Chukotskiy autonomous oblast,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,2,2,2,2,2,6,6,11,12,15,17,17
85 | ,,,,,,Yamalo-Nenetskiy AO,Russia,66.086435,80.005397,"Yamalo-Nenetskiy AO,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,12,12,12,12,30,41,41,41,50,62,66,66,73,95,101,106,116,140,146,149,243,266,303,348,375,387
86 | ,,,,,,Yaroslavl oblast,Russia,57.62987,39.87368,"Yaroslavl oblast,Russia",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,2,2,3,3,3,3,3,3,5,6,6,11,11,13,13,13,27,27,27,39,62,81,105,117,144,187,198,263,305,342,384,409,456
87 |
--------------------------------------------------------------------------------