Skip to content

Instantly share code, notes, and snippets.

@bistaumanga
Last active December 29, 2015 10:29
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save bistaumanga/7657273 to your computer and use it in GitHub Desktop.
Save bistaumanga/7657273 to your computer and use it in GitHub Desktop.
Sainte Laguie Method (modified) to calculate Proportionate Representation seats in Nepal (CA election 2070). Just copy The data from http://election.gov.np/CA2070/CAResults/reportBody.php?selectedMenu1=2&rand=1385472280 to Votes.csv (table only) and run the script.....
We can make this file beautiful and searchable if this error is corrected: It looks like row 5 should actually have 1 column, instead of 2. in line 4.
क्र.सं. राजनैतिक दल / स्वतन्त्र जम्मा निर्वाचित अग्रस्थानमा रहेको
१ नेपाली काँग्रेस २४० १०५ ०
२ नेपाल कम्यूनिष्ट पार्टी (ए. मा. ले) २४० ९१ ०
३ एकीकृत नेपाल कम्युनिष्ट पार्टी (माओवादी) २४० २६ ०
४ मधेशी जनअधिकार फोरम, नेपाल(लोकतान्त्रिक) १७६ ४ ०
५ तराई–मधेश लोकतान्त्रिक पार्टी ११५ ४ ०
६ राष्ट्रिय प्रजातन्त्र पार्टी २३५ ३ ०
७ मधेशी जनअधिकार फोरम, नेपाल १२८ २ ०
८ स्वतन्त्र १११५ २ ०
९ नेपाल मजदुर किसान पार्टी १२७ १ ०
१० सद्भावना पार्टी १३३ १ ०
११ तराई मधेश सदभावना पार्टी नेपाल ७४ १ ०
१२ नेपाल कम्युनिष्ट पार्टी (मार्क्सवादी–लेनिनवादी) १५४ ० ०
१३ चुरेभावर लोकतान्त्रिक पार्टी ११ ० ०
१४ नेपाल जनभावना पार्टी १ ० ०
१५ खस समावेशी राष्ट्रिय पार्टी ४४ ० ०
१६ चुरेभावर राष्ट्रिय एकता पार्टी नेपाल १९ ० ०
१७ राष्ट्रिय मधेश समाजवादी पार्टी ९० ० ०
१८ राष्ट्रिय लोकतान्त्रिक युवा पार्टी ३ ० ०
१९ खम्वुवान राष्ट्रिय मोर्चा, नेपाल २६ ० ०
२० नेपाल राष्ट्रिय यातायात विकास दल १ ० ०
२१ नेपाल सद्भावना पार्टी (युनाइटेड) २८ ० ०
२२ नेपाल शान्ति क्षेत्र परिषद् ४ ० ०
२३ नेपाल युवा किसान पार्टी १८ ० ०
२४ राष्ट्रिय यथार्थवादी पार्टी नेपाल २३ ० ०
२५ राष्ट्रिय प्रजातन्त्र पार्टी नेपाल २३८ ० ०
२६ नव नेपाल निर्माण पार्टी २२ ० ०
२७ मधेशी जनअधिकार फोरम मधेश २२ ० ०
२८ जनजागरण पार्टी नेपाल २७ ० ०
२९ राष्ट्रिय जनमोर्चा १३५ ० ०
३० नेपाल सद्भावना पार्टी (गजेन्द्रवादी) १६ ० ०
३१ नेपाल समाजवादी पार्टी (लोहियावादी) ८ ० ०
३२ नयाँ नेपाल राष्ट्रिय पार्टी १ ० ०
३३ संघीय गणतान्त्रिक समाजवादी पार्टी, नेपाल ६३ ० ०
३४ थरुहट तराई पार्टी नेपाल ४३ ० ०
३५ हरियाली नेपाल पार्टी १७ ० ०
३६ राष्ट्रिय जनमुक्ति पार्टी १४४ ० ०
३७ मधेशी जनअधिकार फोरम (गणतान्त्रिक) ६७ ० ०
३८ नेपाल लेबर पार्टी २६ ० ०
३९ लोकतान्त्रिक जनता पार्टी नेपाल ७ ० ०
४० देशभक्त पर्यावरणीय सामाजिक (देपसा) मोर्चा ६ ० ०
४१ संयुक्त राष्ट्रवादी मोर्चा नेपाल १७ ० ०
४२ तराई मधेश पहाड हिमाल एकता पार्टी ३७ ० ०
४३ समाजवादी जनता पार्टी ४० ० ०
४४ नेपाल राष्ट्रसेवा दल ४ ० ०
४५ नेपाल राष्ट्रिय विकास पार्टी ५ ० ०
४६ नेपाल न्यायिक दल २ ० ०
४७ संघीय लोकतान्त्रिक राष्ट्रिय मञ्च (थरुहट) ११ ० ०
४८ नेपाली जनता दल ३८ ० ०
४९ लिबरल डेमोक्रेटिक पार्टी १२ ० ०
५० जनता दल नेपाल ४ ० ०
५१ लिम्बुवान मुक्ति मोर्चा ४ ० ०
५२ नेपाल नागरिक पार्टी ११ ० ०
५३ मातृभूमि नेपाल दल १० ० ०
५४ देशभक्त समाज १२ ० ०
५५ राष्ट्रिय जनता दल नेपाल ४७ ० ०
५६ नेपाल सद्भावना पार्टी ७९ ० ०
५७ अखण्ड नेपाल पार्टी १०५ ० ०
५८ नेपाल परिवार दल १८० ० ०
५९ नेपाल समावेशी पार्टी ५ ० ०
६० नेपाल जनता पार्टी ३५ ० ०
६१ मधेश समता पार्टी नेपाल १९ ० ०
६२ नेपाल कम्युनिष्ट पार्टी ६० ० ०
६३ अखण्ड सुदूरपश्चिम पार्टी नेपाल १४ ० ०
६४ नेपाल जनसमावेशी एकता पार्टी ५ ० ०
६५ लोक दल १३ ० ०
६६ राष्ट्रिय नागरिक पार्टी ९ ० ०
६७ जनता पार्टी नेपाल ४४ ० ०
६८ जनता दल युनाइटेड ९ ० ०
६९ नेपाल कम्युनिष्ट पार्टी (माले–समाजवादी) ३० ० ०
७० राष्ट्रिय मुक्ति आन्दोलन, नेपाल ६ ० ०
७१ मंगोल नेशनल अर्गनाइजेशन ३६ ० ०
७२ राष्ट्रिय शिवसेना पार्टी ६३ ० ०
७३ चुरेभावर राष्ट्रिय पार्टी ११ ० ०
७४ लिम्बुवान मुक्ति मोर्चा नेपाल २१ ० ०
७५ नेपाः राष्ट्रिय पार्टी १४ ० ०
७६ युनाइटेड ग्रीन अर्गनाइजेशन ४ ० ०
७७ जनता दल लोकतान्त्रिक पार्टी १७ ० ०
७८ संघीय समावेशी समाजवादी पार्टी, नेपाल ३ ० ०
७९ जनतान्त्रिक तराई मधेश मुक्ति टाइगर्स ३९ ० ०
८० राष्ट्रिय चुरेभावर पार्टी १८ ० ०
८१ राष्ट्रिय स्वाभिमान पार्टी नेपाल ३१ ० ०
८२ ॐ सेना नेपाल २ ० ०
८३ सोसल रिपब्लिकन पार्टी २५ ० ०
८४ शिवसेना नेपाल ८१ ० ०
८५ नेपाल गौरवशाली पार्टी ४ ० ०
८६ राष्ट्रवादी एकता पार्टी १४ ० ०
८७ राष्ट्रिय जन विकास पार्टी ३ ० ०
८८ नेपाल कम्युनिष्ट पार्टी (संयुक्त) ७२ ० ०
८९ गरीब एकता समाज पार्टी, नेपाल ३ ० ०
९० जनमोर्चा नेपाल ३० ० ०
९१ नेपाल लोकतान्त्रिक समाजवादी दल १२ ० ०
९२ सहकारी पार्टी नेपाल ८ ० ०
९३ पिछडावर्ग निषाद दलित जनजाति पार्टी ४ ० ०
९४ नेपाल श्रमजिवी दल २ ० ०
९५ दलित जनजाति पार्टी ८० ० ०
९६ तामाङसालिङ राष्ट्रिय जनएकता पार्टी २ ० ०
९७ सङ्घीय समाजवादी पार्टी, नेपाल १८५ ० ०
९८ जनयुनिटी को–अपरेटिभ पार्टी नेपाल ५३ ० ०
९९ युवा शक्ति नेपाल पार्टी १ ० ०
१०० राष्ट्रवादी जनता पार्टी १० ० ०
१०१ लोकतान्त्रिक पार्टी–नेपाल ८ ० ०
१०२ विश्व सत्यवादी पार्टी ४ ० ०
१०३ मधेश तराई फोरम ३९ ० ०
१०४ बहुजन समाज पार्टी नेपाल ५ ० ०
१०५ जन प्रजातान्त्रिक पार्टी १८ ० ०
१०६ नेपाल कम्युनिष्ट पार्टी (मालेमा) साम्यवादी ३ ० ०
१०७ राष्ट्रिय एकता पार्टी १६ ० ०
१०८ राष्ट्रिय मधेश बहुजन समाजवादी पार्टी ११ ० ०
१०९ शान्ति पार्टी नेपाल २१ ० ०
११० नेपाल मधेशी जनता दल (समाजवादी) २ ० ०
१११ नेपालआमा पार्टी ३५ ० ०
११२ लिग नेपाल शान्ति एकता पार्टी १८ ० ०
११३ संघीय सद्भावना पार्टी ९३ ० ०
११४ श्रमिक जनता पार्टी–नेपाल १ ० ०
११५ राष्ट्रिय मधेश एकता पार्टी, नेपाल १३ ० ०
११६ संयुक्त जनमोर्चा ६ ० ०
११७ हिन्दु प्रजातान्त्रिक पार्टी, नेपाल ११ ० ०
११८ संघीय लिम्बुवान राज्य परिषद १५ ० ०
११९ नेपाल प्रजातान्त्रिक प्रगतिशिल पार्टी १ ० ०
१२० तराई पहाड हिमाल समाज पार्टी ४ ० ०
१२१ गरिब जनताको क्रान्ति पार्टी १ ० ०
# -*- coding: utf-8 -*-
#############################################################################
####### usage : > python PR.py -t 0.01 ###################################
####### OR, > python PR.py --thresh=0.01 ####################################
import numpy as np
from optparse import OptionParser
parser = OptionParser()
parser.add_option("-t", "--thresh", dest="threshold", help="Threshold for PR")
options, args = parser.parse_args()
threshold = float(options.threshold) if options.threshold else 0.
numSeats = 335
nep_dict = { u'०': 0,
u'१': 1,
u'२': 2,
u'३': 3,
u'४': 4,
u'५': 5,
u'६': 6,
u'७': 7,
u'८': 8,
u'९': 9 }
def map_nepali(nep_num):
en_num = 0
for d in nep_num.decode('utf-8'):
if d in nep_dict.keys():
en_num = en_num * 10 + nep_dict[d]
return int(en_num)
data = np.genfromtxt('Votes.csv', delimiter='\t', names=True, dtype=None)
Votes = np.array([map_nepali(data[i][2]) for i in range(len(data))])
totalVotes = np.sum(Votes)
Votes = Votes * (Votes > threshold * totalVotes)
Parties = [data[i][1] for i in range(len(data))]
numParties = Votes.shape[0]
matrix=np.zeros(( numParties, numSeats))
for s in range(200):
if not s : matrix[:, s] = 1. * Votes[:]/1.4
elif s : matrix[:, s] = Votes[:]/(2. * s + 1)
PRseats = {}
for s in range(numSeats):
mx = np.unravel_index(matrix.argmax(), matrix.shape)
matrix[mx] = -1
if Parties[mx[0]] in PRseats.keys() : PRseats[Parties[mx[0]]] += 1
else : PRseats[Parties[mx[0]]] = 1
pc_votes = {}
for p, v in zip(Parties, Votes):
if p in PRseats.keys():
print p, ', %d, %.2f %%'%(PRseats[p], 100. * v/totalVotes)
pc_votes[p] = [round(100. * v/totalVotes, 2), v]
print "Number of parties due to PR: %d, and Total Votes counted so far : %d"%(len(PRseats), totalVotes)
########## FpTP data
data = np.genfromtxt('fptp.csv', delimiter='\t', names=True, dtype=None)
FPTPseats={}
for i in range(len(data)):
if map_nepali(data[i][3]) : FPTPseats[data[i][1]] = map_nepali(data[i][3])
Parties = list(set(FPTPseats.keys() + PRseats.keys()))
seats = []
import csv
with open('Result.csv','w') as fp:
writer = csv.writer(fp, delimiter=',')
writer.writerow(['Party', 'FPTP', 'PR', 'PR_percent', 'PR Votes'])
for p in Parties:
if p not in PRseats.keys() and p in FPTPseats.keys():
seats.append([FPTPseats[p], 0, 'NA', 'NA'])
if p not in FPTPseats.keys() and p in PRseats.keys():
seats.append([0, PRseats[p], pc_votes[p][0], pc_votes[p][1]])
elif p in PRseats.keys() and p in FPTPseats.keys() :
seats.append([FPTPseats[p], PRseats[p], pc_votes[p][0], pc_votes[p][1]])
writer.writerow([p, seats[-1][0], seats[-1][1], seats[-1][2], seats[-1][3]])
fp.close()
We can make this file beautiful and searchable if this error is corrected: It looks like row 6 should actually have 1 column, instead of 2. in line 5.
क्र.स. राजनैतिक दल प्राप्त मत
१ नेपाली काँग्रेस २४२१२५२
२ नेपाल कम्यूनिष्ट पार्टी (ए. मा. ले) २२४३४७७
३ एकीकृत नेपाल कम्युनिष्ट पार्टी (माओवादी) १४३८६६६
४ राष्ट्रिय प्रजातन्त्र पार्टी नेपाल ६२४२८१
५ मधेशी जनअधिकार फोरम, नेपाल(लोकतान्त्रिक) २६६२७६
६ राष्ट्रिय प्रजातन्त्र पार्टी २५९२३८
७ मधेशी जनअधिकार फोरम, नेपाल २१२७३३
८ तराई–मधेश लोकतान्त्रिक पार्टी १८०४३५
९ सद्भावना पार्टी १३३५२१
१० नेपाल कम्युनिष्ट पार्टी (मार्क्सवादी–लेनिनवादी) १३०२६१
११ सङ्घीय समाजवादी पार्टी, नेपाल १२१५८०
१२ राष्ट्रिय जनमोर्चा ९२४९८
१३ नेपाल कम्युनिष्ट पार्टी (संयुक्त) ९१९६४
१४ राष्ट्रिय मधेश समाजवादी पार्टी ७९६८०
१५ नेपाल मजदुर किसान पार्टी ६६६४२
१६ तराई मधेश सदभावना पार्टी नेपाल ६५४६७
१७ राष्ट्रिय जनमुक्ति पार्टी ६३८३९
१८ थरुहट तराई पार्टी नेपाल ६२८९४
१९ नेपाल परिवार दल ५१८१९
२० दलित जनजाति पार्टी ४९२४२
२१ अखण्ड नेपाल पार्टी ३६८५१
२२ नेपाली जनता दल ३३२७८
२३ मधेशी जनअधिकार फोरम (गणतान्त्रिक) ३२०३१
२४ खम्वुवान राष्ट्रिय मोर्चा, नेपाल ३०६८९
२५ नेपाः राष्ट्रिय पार्टी २८०२०
२६ जनजागरण पार्टी नेपाल २७३९८
२७ संघीय सद्भावना पार्टी २६८३५
२८ मधेश समता पार्टी नेपाल २३९८८
२९ संघीय लोकतान्त्रिक राष्ट्रिय मञ्च (थरुहट) २१५८१
३० समाजवादी जनता पार्टी २१५३९
३१ संघीय गणतान्त्रिक समाजवादी पार्टी, नेपाल १८६८०
३२ नेपाल कम्युनिष्ट पार्टी १८१५८
३३ नेपाल युवा किसान पार्टी १६७८२
३४ नेपाल जनता पार्टी १५९३३
३५ नेपाल सद्भावना पार्टी १५६०८
३६ खस समावेशी राष्ट्रिय पार्टी १५२३७
३७ तराई मधेश पहाड हिमाल एकता पार्टी १२६०५
३८ अखण्ड सुदूरपश्चिम पार्टी नेपाल १२३३६
३९ मधेश तराई फोरम ११३६५
४० राष्ट्रिय स्वाभिमान पार्टी नेपाल ११२४१
४१ लोक दल १०९५३
४२ जनता दल नेपाल १०५९५
४३ नेपाल लोकतान्त्रिक समाजवादी दल १०३९१
४४ जनता दल लोकतान्त्रिक पार्टी १००९०
४५ जन प्रजातान्त्रिक पार्टी ८५१७
४६ शिवसेना नेपाल ८३९७
४७ पिछडावर्ग निषाद दलित जनजाति पार्टी ८३४८
४८ मंगोल नेशनल अर्गनाइजेशन ८२४८
४९ नव नेपाल निर्माण पार्टी ८०६१
५० चुरेभावर राष्ट्रिय एकता पार्टी नेपाल ७९९६
५१ नेपाल कम्युनिष्ट पार्टी (मालेमा) साम्यवादी ७७८६
५२ नेपाल शान्ति क्षेत्र परिषद् ७७३७
५३ नेपाल गणतान्त्रिक एकता पार्टी ७१९९
५४ संघीय लिम्बुवान राज्य परिषद ७०६३
५५ विश्व सत्यवादी पार्टी ६६९०
५६ सहकारी पार्टी नेपाल ६१३९
५७ राष्ट्रिय जनता दल नेपाल ६०४२
५८ शान्ति पार्टी नेपाल ६०२९
५९ संघीय समावेशी समाजवादी पार्टी, नेपाल ५९८२
६० गरीब एकता समाज पार्टी, नेपाल ५८६१
६१ मधेशी जनअधिकार फोरम मधेश ५८३६
६२ राष्ट्रिय यथार्थवादी पार्टी नेपाल ५५०४
६३ नेपालआमा पार्टी ५४९५
६४ जनता दल युनाइटेड ५३८९
६५ राष्ट्रिय शिवसेना पार्टी ५३८३
६६ राष्ट्रिय मधेश बहुजन समाजवादी पार्टी ५२७३
६७ राष्ट्रिय मुक्ति आन्दोलन, नेपाल ५२५९
६८ संयुक्त राष्ट्रवादी मोर्चा नेपाल ५२२९
६९ चुरेभावर लोकतान्त्रिक पार्टी ५०८६
७० नेपाल लेबर पार्टी ४८३४
७१ नेपाल सद्भावना पार्टी (गजेन्द्रवादी) ४८२२
७२ नेपाल नागरिक पार्टी ४७९३
७३ बहुजन समाज पार्टी नेपाल ४७८३
७४ राष्ट्रिय नागरिक पार्टी ४६६६
७५ चुरेभावर राष्ट्रिय पार्टी ४६५९
७६ नेपाल सद्भावना पार्टी (युनाइटेड) ४५८०
७७ जनतान्त्रिक तराई मधेश मुक्ति टाइगर्स ४४७८
७८ हिन्दु प्रजातान्त्रिक पार्टी, नेपाल ४२४४
७९ नयाँ नेपाल राष्ट्रिय पार्टी ४११७
८० जनयुनिटी को–अपरेटिभ पार्टी नेपाल ४०६२
८१ देशभक्त समाज ३९०२
८२ नेपाल समावेशी पार्टी ३८९६
८३ नेपाल जनसमावेशी एकता पार्टी ३७५२
८४ लिम्बुवान मुक्ति मोर्चा ३७५२
८५ लिबरल डेमोक्रेटिक पार्टी ३७३७
८६ नेपाल कम्युनिष्ट पार्टी (माले–समाजवादी) ३६४४
८७ जनता पार्टी नेपाल ३५९८
८८ देशभक्त पर्यावरणीय सामाजिक (देपसा) मोर्चा ३५४२
८९ राष्ट्रिय चुरेभावर पार्टी ३४६२
९० नेपाल राष्ट्रिय विकास पार्टी ३४१७
९१ नेपाल गौरवशाली पार्टी ३३९०
९२ सोसल रिपब्लिकन पार्टी ३३६०
९३ राष्ट्रिय एकता पार्टी ३३४२
९४ युनाइटेड ग्रीन अर्गनाइजेशन ३२६५
९५ जनमोर्चा नेपाल ३१९०
९६ नेपाल राष्ट्रसेवा दल ३१३६
९७ लोकतान्त्रिक पार्टी–नेपाल ३११२
९८ नयाँ संघीयता जनधारणा पार्टी ३०२३
९९ मातृभूमि नेपाल दल ३००६
१०० नेपाल राष्ट्रिय यातायात विकास दल २९६१
१०१ राष्ट्रवादी एकता पार्टी २९१२
१०२ लिम्बुवान मुक्ति मोर्चा नेपाल २८५५
१०३ राष्ट्रिय जन विकास पार्टी २७४१
१०४ नेपाल समाजवादी पार्टी (लोहियावादी) २७०८
१०५ संघीय विकासवादी पार्टी नेपाल २६४८
१०६ राष्ट्रवादी जनता पार्टी २५१२
१०७ नेपाल जनभावना पार्टी २४३२
१०८ नेपाल न्यायिक दल २३८४
१०९ तामाङसालिङ राष्ट्रिय जनएकता पार्टी २३१०
११० संयुक्त जनमोर्चा २२३२
१११ श्रमिक जनता पार्टी–नेपाल २०४२
११२ राष्ट्रिय मधेश एकता पार्टी, नेपाल २०३५
११३ ॐ सेना नेपाल २०२१
११४ हरियाली नेपाल पार्टी १९३१
११५ नेपाल मधेशी जनता दल (समाजवादी) १९०२
११६ नेपाल श्रमजिवी दल १८९०
११७ युवा शक्ति नेपाल पार्टी १८४४
११८ लिग नेपाल शान्ति एकता पार्टी १८१८
११९ लोकतान्त्रिक जनता पार्टी नेपाल १७२४
१२० तराई पहाड हिमाल समाज पार्टी १६९४
१२१ राष्ट्रिय लोकतान्त्रिक युवा पार्टी ११९०
१२२ नेपाली जनता पार्टी ९९६
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment