Last active
July 3, 2020 16:57
-
-
Save VorontsovIE/6d273cb9f29147f98529f29da45d930c to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Data from https://github.com/dkobak/elections/blob/master/electionsData.zip | |
import seaborn as sns | |
import pandas as pd | |
import matplotlib.pyplot as plt | |
import numpy as np | |
df = pd.read_csv('2018.txt', sep='\t') | |
################################## | |
keys = list(df.keys()) | |
print(*enumerate(keys),sep='\n') | |
# (0, 'region') | |
# (1, 'tik') | |
# (2, 'uik') | |
# (3, 'Число избирателей, включенных в список избирателей') | |
# (4, 'Число избирательных бюллетеней, полученных участковой избирательной комиссией') | |
# (5, 'Число избирательных бюллетеней, выданных избирателям, проголосовавшим досрочно') | |
# (6, 'Число избирательных бюллетеней, выданных в помещении для голосования в день голосования') | |
# (7, 'Число избирательных бюллетеней, выданных вне помещения для голосования в день голосования') | |
# (8, 'Число погашенных избирательных бюллетеней') | |
# (9, 'Число избирательных бюллетеней в переносных ящиках для голосования') | |
# (10, 'Число бюллетеней в стационарных ящиках для голосования') | |
# (11, 'Число недействительных избирательных бюллетеней') | |
# (12, 'Число действительных избирательных бюллетеней') | |
# (13, 'Число утраченных избирательных бюллетеней') | |
# (14, 'Число избирательных бюллетеней, не учтенных при получении') | |
# (15, 'Бабурин Сергей Николаевич') | |
# (16, 'Грудинин Павел Николаевич') | |
# (17, 'Жириновский Владимир Вольфович') | |
# (18, 'Путин Владимир Владимирович') | |
# (19, 'Собчак Ксения Анатольевна') | |
# (20, 'Сурайкин Максим Александрович') | |
# (21, 'Титов Борис Юрьевич') | |
# (22, 'Явлинский Григорий Алексеевич') | |
# (23, 'url') | |
# (24, 'turnout') | |
################################################################################### | |
# Число избирательных бюллетеней, выданных избирателям, проголосовавшим досрочно + | |
# Число избирательных бюллетеней, выданных в помещении для голосования в день голосования + | |
# Число избирательных бюллетеней, выданных вне помещения для голосования в день голосования | |
# на | |
# Число избирателей, включенных в список избирателей | |
df['turnout'] = df.apply(lambda r: round(1000*( r[5]+r[6]+r[7] ) / r[3]), axis=1) | |
plt.ylim(0,500) | |
plt.xlim(0,1000) | |
plt.rcParams["figure.figsize"] = (20,10) | |
sns.distplot(df['turnout'],kde=False,bins=1001) | |
plt.xticks(np.arange(0, 1001, step=10)) | |
plt.savefig('turnout_2018.png') | |
################## | |
# Пример чисел | |
hist = np.histogram(list(df['turnout']), bins=1001,range=(0,1000))[0] | |
print(*(f'{i/10}: {hist[i]}' for i in range(835,866)), sep='\n') | |
# 83.5: 104 | |
# 83.6: 86 | |
# 83.7: 99 | |
# 83.8: 93 | |
# 83.9: 108 | |
# 84.0: 130 | |
# 84.1: 108 | |
# 84.2: 105 | |
# 84.3: 101 | |
# 84.4: 124 | |
# 84.5: 123 | |
# 84.6: 108 | |
# 84.7: 107 | |
# 84.8: 107 | |
# 84.9: 126 | |
# 85.0: 254 | |
# 85.1: 180 | |
# 85.2: 133 | |
# 85.3: 131 | |
# 85.4: 117 | |
# 85.5: 149 | |
# 85.6: 123 | |
# 85.7: 128 | |
# 85.8: 88 | |
# 85.9: 110 | |
# 86.0: 147 | |
# 86.1: 119 | |
# 86.2: 137 | |
# 86.3: 112 | |
# 86.4: 110 | |
# 86.5: 116 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment