Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update project from fork #1

Merged
merged 2 commits into from
Aug 1, 2018
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
249 changes: 118 additions & 131 deletions check_rada_by_CEC_link.ipynb → check_local_rada.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -18,32 +18,33 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Зразок лінку - http://www.cvk.gov.ua/pls/vm2015/PVM057?PID112=30&PID102=9113&PF7691=9113&PT001F01=100&rej=0&pt00_t001f01=100"
"Зразок лінку - http://www.cvk.gov.ua/pls/vm2015/PVM057?PID112=12&PID102=884&PF7691=884&PT001F01=100&rej=0&pt00_t001f01=100"
]
},
{
"cell_type": "code",
"execution_count": 15,
"execution_count": 16,
"metadata": {},
"outputs": [],
"source": [
"# Вставляємо лінк сюди\n",
"url = 'http://www.cvk.gov.ua/pls/vm2015/PVM057?PID112=30&PID102=9113&PF7691=9113&PT001F01=100&rej=0&pt00_t001f01=100' "
"url = 'http://www.cvk.gov.ua/pls/vm2015/PVM057?PID112=12&PID102=884&PF7691=884&PT001F01=100&rej=0&pt00_t001f01=100' "
]
},
{
"cell_type": "code",
"execution_count": 11,
"execution_count": 17,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Загальна кількість мандатів у раді - 36\n",
"Виборча квота - 645.25\n",
"Партії що отримали зайві мандати -['ПАРТІЯ \"БЛОК ПЕТРА ПОРОШЕНКА \"СОЛІДАРНІСТЬ\"']\n",
"Партії що втратили мандати - ['Партія \"Відродження\"']\n"
"Загальна кількість мандатів у раді - 84\n",
"Виборча квота - 7124.238095238095\n",
"Вкрадені мандати\n",
"Партії що отримали зайві мандати -['Політична Партія \"Опозиційний блок\"', 'Політична партія \"Об’єднання \"САМОПОМІЧ\"']\n",
"Партії що втратили мандати - ['політична партія Всеукраїнське об’єднання \"Батьківщина\"', 'ПОЛІТИЧНА ПАРТІЯ \"УКРАЇНСЬКЕ ОБ’ЄДНАННЯ ПАТРІОТІВ – УКРОП\"']\n"
]
}
],
Expand All @@ -64,35 +65,35 @@
"print('Загальна кількість мандатів у раді - ' +str(kilk_dep))\n",
"kvota = df.votes.sum() / kilk_dep\n",
"print('Виборча квота - ' + str(kvota))\n",
"df['mand'] = df.votes/kvota\n",
"df['mandates_kvota'] = df.votes/kvota\n",
"# Кількість мандатів за розподілена за цілими числами\n",
"df['mand_r']= round(df.mand-0.5,0)\n",
"df['mand_round']= round(df.mandates_kvota-0.5,0)\n",
"# Підраховуємо дробові залишки\n",
"df['chast'] = df.mand - df.mand_r\n",
"df['chastka'] = df.mandates_kvota - df.mand_round\n",
"# Визначаємо кількість нерозподілених мандатів\n",
"rizn_mand = kilk_dep - df.mand_r.sum()\n",
"df = df.sort_values('chast',ascending=False)\n",
"rizn_mand = kilk_dep - df.mand_round.sum()\n",
"df = df.sort_values('chastka',ascending=False)\n",
"# Фінальний розподіл без дробових залишків\n",
"df['mand_final'] = df.mand_r + 0\n",
"df['mandates_final'] = df.mand_round + 0\n",
"df = df.reset_index(drop=True)\n",
"# Розподіл мандатів за дробовими залишками\n",
"for i in range(0,int(rizn_mand)):\n",
" df.at[i, 'mand_final'] = df.mand_r.iloc[i] + 1\n",
" df.at[i, 'mandates_final'] = df.mand_round.iloc[i] + 1\n",
"# Різниця між кількістю мандатів між даними ЦВК та нашим підрахунком\n",
"df['rizn'] = df['mandates'] -df['mand_final']\n",
"df['riznytsia'] = df['mandates'] -df['mandates_final']\n",
"# Перевірка на помилки\n",
"ac = df[df['rizn' ] !=0]\n",
"ac = df[df['riznytsia' ] !=0]\n",
"if len(ac.index)> 0:\n",
" print('Вкрадені мандати')\n",
" # Визначаємо хто отримав та втратив мандат\n",
" df1 = ac[ac.rizn>0]\n",
" df1 = ac[ac.riznytsia>0]\n",
" dovj = len(df1.index)\n",
" parties = []\n",
" while dovj > 0:\n",
" parties.append(df1.party.iloc[dovj-1])\n",
" dovj -= 1\n",
" print('Партії що отримали зайві мандати -' + str(parties))\n",
" df1 = ac[ac.rizn<0]\n",
" df1 = ac[ac.riznytsia<0]\n",
" dovj = len(df1.index)\n",
" partiesl = []\n",
" while dovj > 0:\n",
Expand All @@ -112,7 +113,7 @@
},
{
"cell_type": "code",
"execution_count": 14,
"execution_count": 18,
"metadata": {},
"outputs": [
{
Expand Down Expand Up @@ -140,157 +141,143 @@
" <th>votes</th>\n",
" <th>mandates</th>\n",
" <th>perc</th>\n",
" <th>mand</th>\n",
" <th>mand_r</th>\n",
" <th>chast</th>\n",
" <th>mand_final</th>\n",
" <th>rizn</th>\n",
" <th>mandates_kvota</th>\n",
" <th>mand_round</th>\n",
" <th>chastka</th>\n",
" <th>mandates_final</th>\n",
" <th>riznytsia</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>5</th>\n",
" <th>0</th>\n",
" <td>ПАРТІЯ \"БЛОК ПЕТРА ПОРОШЕНКА \"СОЛІДАРНІСТЬ\"</td>\n",
" <td>4851</td>\n",
" <td>8</td>\n",
" <td>18.421053</td>\n",
" <td>7.518016</td>\n",
" <td>7.0</td>\n",
" <td>0.518016</td>\n",
" <td>7.0</td>\n",
" <td>1.0</td>\n",
" <td>156378</td>\n",
" <td>22</td>\n",
" <td>22.732929</td>\n",
" <td>21.950137</td>\n",
" <td>21.0</td>\n",
" <td>0.950137</td>\n",
" <td>22.0</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <th>4</th>\n",
" <td>політична партія Всеукраїнське об’єднання \"Бат...</td>\n",
" <td>3817</td>\n",
" <td>6</td>\n",
" <td>14.494570</td>\n",
" <td>5.915537</td>\n",
" <td>5.0</td>\n",
" <td>0.915537</td>\n",
" <td>6.0</td>\n",
" <td>0.0</td>\n",
" <td>119619</td>\n",
" <td>16</td>\n",
" <td>17.389212</td>\n",
" <td>16.790427</td>\n",
" <td>16.0</td>\n",
" <td>0.790427</td>\n",
" <td>17.0</td>\n",
" <td>-1.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>політична партія Всеукраїнське об’єднання \"Сво...</td>\n",
" <td>4141</td>\n",
" <td>6</td>\n",
" <td>15.724918</td>\n",
" <td>6.417668</td>\n",
" <td>6.0</td>\n",
" <td>0.417668</td>\n",
" <td>6.0</td>\n",
" <td>0.0</td>\n",
" <th>1</th>\n",
" <td>Політична партія \"Об’єднання \"САМОПОМІЧ\"</td>\n",
" <td>63365</td>\n",
" <td>10</td>\n",
" <td>9.211475</td>\n",
" <td>8.894284</td>\n",
" <td>8.0</td>\n",
" <td>0.894284</td>\n",
" <td>9.0</td>\n",
" <td>1.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>0</th>\n",
" <th>2</th>\n",
" <td>Політична партія \"Радикальна партія Олега Ляшк...</td>\n",
" <td>1926</td>\n",
" <td>3</td>\n",
" <td>7.313739</td>\n",
" <td>2.984890</td>\n",
" <td>2.0</td>\n",
" <td>0.984890</td>\n",
" <td>3.0</td>\n",
" <td>63311</td>\n",
" <td>9</td>\n",
" <td>9.203625</td>\n",
" <td>8.886705</td>\n",
" <td>8.0</td>\n",
" <td>0.886705</td>\n",
" <td>9.0</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <th>3</th>\n",
" <td>ПОЛІТИЧНА ПАРТІЯ \"УКРАЇНСЬКЕ ОБ’ЄДНАННЯ ПАТРІО...</td>\n",
" <td>1808</td>\n",
" <td>3</td>\n",
" <td>6.865649</td>\n",
" <td>2.802015</td>\n",
" <td>2.0</td>\n",
" <td>0.802015</td>\n",
" <td>3.0</td>\n",
" <td>0.0</td>\n",
" <td>55644</td>\n",
" <td>7</td>\n",
" <td>8.089060</td>\n",
" <td>7.810519</td>\n",
" <td>7.0</td>\n",
" <td>0.810519</td>\n",
" <td>8.0</td>\n",
" <td>-1.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>Політична партія \"Рідне місто\"</td>\n",
" <td>1662</td>\n",
" <td>3</td>\n",
" <td>6.311233</td>\n",
" <td>2.575746</td>\n",
" <td>2.0</td>\n",
" <td>0.575746</td>\n",
" <td>3.0</td>\n",
" <th>6</th>\n",
" <td>Політична партія \"Наш край\"</td>\n",
" <td>51042</td>\n",
" <td>7</td>\n",
" <td>7.420060</td>\n",
" <td>7.164556</td>\n",
" <td>7.0</td>\n",
" <td>0.164556</td>\n",
" <td>7.0</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>Партія \"Відродження\"</td>\n",
" <td>1625</td>\n",
" <td>2</td>\n",
" <td>6.170730</td>\n",
" <td>2.518404</td>\n",
" <td>2.0</td>\n",
" <td>0.518404</td>\n",
" <td>3.0</td>\n",
" <td>-1.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>ПОЛІТИЧНА ПАРТІЯ \"ЗА КОНКРЕТНІ СПРАВИ\"</td>\n",
" <td>2080</td>\n",
" <td>3</td>\n",
" <td>7.898534</td>\n",
" <td>3.223557</td>\n",
" <td>3.0</td>\n",
" <td>0.223557</td>\n",
" <td>3.0</td>\n",
" <td>політична партія Всеукраїнське об’єднання \"Сво...</td>\n",
" <td>50689</td>\n",
" <td>7</td>\n",
" <td>7.368744</td>\n",
" <td>7.115006</td>\n",
" <td>7.0</td>\n",
" <td>0.115006</td>\n",
" <td>7.0</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>Народна Партія</td>\n",
" <td>1319</td>\n",
" <td>2</td>\n",
" <td>5.008734</td>\n",
" <td>2.044169</td>\n",
" <td>2.0</td>\n",
" <td>0.044169</td>\n",
" <td>2.0</td>\n",
" <td>0.0</td>\n",
" <th>5</th>\n",
" <td>Політична Партія \"Опозиційний блок\"</td>\n",
" <td>38388</td>\n",
" <td>6</td>\n",
" <td>5.580527</td>\n",
" <td>5.388366</td>\n",
" <td>5.0</td>\n",
" <td>0.388366</td>\n",
" <td>5.0</td>\n",
" <td>1.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" party votes mandates \\\n",
"5 ПАРТІЯ \"БЛОК ПЕТРА ПОРОШЕНКА \"СОЛІДАРНІСТЬ\" 4851 8 \n",
"1 політична партія Всеукраїнське об’єднання \"Бат... 3817 6 \n",
"6 політична партія Всеукраїнське об’єднання \"Сво... 4141 6 \n",
"0 Політична партія \"Радикальна партія Олега Ляшк... 1926 3 \n",
"2 ПОЛІТИЧНА ПАРТІЯ \"УКРАЇНСЬКЕ ОБ’ЄДНАННЯ ПАТРІО... 1808 3 \n",
"3 Політична партія \"Рідне місто\" 1662 3 \n",
"4 Партія \"Відродження\" 1625 2 \n",
"7 ПОЛІТИЧНА ПАРТІЯ \"ЗА КОНКРЕТНІ СПРАВИ\" 2080 3 \n",
"8 Народна Партія 1319 2 \n",
" party votes mandates \\\n",
"0 ПАРТІЯ \"БЛОК ПЕТРА ПОРОШЕНКА \"СОЛІДАРНІСТЬ\" 156378 22 \n",
"4 політична партія Всеукраїнське об’єднання \"Бат... 119619 16 \n",
"1 Політична партія \"Об’єднання \"САМОПОМІЧ\" 63365 10 \n",
"2 Політична партія \"Радикальна партія Олега Ляшк... 63311 9 \n",
"3 ПОЛІТИЧНА ПАРТІЯ \"УКРАЇНСЬКЕ ОБ’ЄДНАННЯ ПАТРІО... 55644 7 \n",
"6 Політична партія \"Наш край\" 51042 7 \n",
"7 політична партія Всеукраїнське об’єднання \"Сво... 50689 7 \n",
"5 Політична Партія \"Опозиційний блок\" 38388 6 \n",
"\n",
" perc mand mand_r chast mand_final rizn \n",
"5 18.421053 7.518016 7.0 0.518016 7.0 1.0 \n",
"1 14.494570 5.915537 5.0 0.915537 6.0 0.0 \n",
"6 15.724918 6.417668 6.0 0.417668 6.0 0.0 \n",
"0 7.313739 2.984890 2.0 0.984890 3.0 0.0 \n",
"2 6.865649 2.802015 2.0 0.802015 3.0 0.0 \n",
"3 6.311233 2.575746 2.0 0.575746 3.0 0.0 \n",
"4 6.170730 2.518404 2.0 0.518404 3.0 -1.0 \n",
"7 7.898534 3.223557 3.0 0.223557 3.0 0.0 \n",
"8 5.008734 2.044169 2.0 0.044169 2.0 0.0 "
" perc mandates_kvota mand_round chastka mandates_final riznytsia \n",
"0 22.732929 21.950137 21.0 0.950137 22.0 0.0 \n",
"4 17.389212 16.790427 16.0 0.790427 17.0 -1.0 \n",
"1 9.211475 8.894284 8.0 0.894284 9.0 1.0 \n",
"2 9.203625 8.886705 8.0 0.886705 9.0 0.0 \n",
"3 8.089060 7.810519 7.0 0.810519 8.0 -1.0 \n",
"6 7.420060 7.164556 7.0 0.164556 7.0 0.0 \n",
"7 7.368744 7.115006 7.0 0.115006 7.0 0.0 \n",
"5 5.580527 5.388366 5.0 0.388366 5.0 1.0 "
]
},
"execution_count": 14,
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.sort_values('mand_final',ascending=False)"
"df.sort_values('mandates_final',ascending=False)"
]
},
{
Expand Down