Skip to content

Instantly share code, notes, and snippets.

@VorontsovIE
Last active July 3, 2020 16:57
Show Gist options
  • Save VorontsovIE/6d273cb9f29147f98529f29da45d930c to your computer and use it in GitHub Desktop.
Save VorontsovIE/6d273cb9f29147f98529f29da45d930c to your computer and use it in GitHub Desktop.
# 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