Skip to content

Instantly share code, notes, and snippets.

@nickjevershed
Created August 29, 2014 01:05
Show Gist options
  • Save nickjevershed/b0bff28f2d13a44a5661 to your computer and use it in GitHub Desktop.
Save nickjevershed/b0bff28f2d13a44a5661 to your computer and use it in GitHub Desktop.
Assigns parties to politicians. Takes a csv as input file, assumes names are in the first column
#!/usr/bin/env python
#coding=utf-8
import csv
coalition = ["Chris Pearce","Petro Georgiou","Fran Bailey","Danna Vale","Michael Johnson","Margaret May","Julian McGauran","Mary Jo Fisher","David Hawker","Pat Farmer","Wilson Tuckey","Peter Lindsay","Joanna Gash","Judith Troeth","Alex Somlyay","Alexander Somlyay","Nick Minchin","Nigel Scullion","Alan Ferguson","Russell Trood","Guy Barnett","Chris Back","Eric Abetz","Judith Adams"," Chris Back","Cory Bernardi","Simon Birmingham","Ron Boswell","Ronald Boswell","Sue Boyce","George Brandis","David Bushby","Michaelia Cash","Richard Colbeck","Helen Coonan","Mathias Cormann","Sean Edwards","Alan Eggleston","David Fawcett","Concetta Fierravanti-Wells","Mitch Fifield","Mary Jo Fisher","Bill Heffernan","Gary Humphries","David Johnston","Barnaby Joyce","Helen Kroger","Ian Macdonald","Bridget McKenzie","Brett Mason","Fiona Nash","Marise Payne","Stephen Parry","Michael Ronaldson","Anne Ruston","Scott Ryan","Arthur Sinodinos","Dean Smith","John Williams","Patrick Secker","Barry Haase","Peter Slipper","Paul Neville","Alby Schultz","John Forrest","Mal Washer","Tony Crook","Judi Moylan","Sophie Mirabella","Alex Somlyay","Alan Tudge","John Alexander","Philip Ruddock","Ross Vasta","Andrew Southcott","Andrew Laming","Paul Fletcher","Teresa Gambaro","John Cobb","Don Randall","Tony Smith","Scott Morrison","Luke Simpkins","Luke Hartsuyker","Julie Bishop","George Christensen","Peter Dutton","Bruce Billson","Stuart Robert","Sussan Ley","Greg Hunt","Ken O'Dowd","Bert van Manen","Nola Marino","Ann Sudmalis","Darren Chester","Andrew Robb","Rowan Ramsey","Ian Macfarlane","Ken Wyatt","Ewen Jones","Kelly O'Dwyer","Craig Kelly","Josh Frydenberg","Warren Entsch","Wyatt Roy","Russell Matheson","Bronwyn Bishop","Louise Markus","Bruce Scott","Jamie Briggs","Russell Broadbent","Karen Andrews","Kevin Andrews","Alex Hawke","Steven Ciobo","Sharman Stone","Joe Hockey","Mark Coulton","Bob Baldwin","Michael McCormack","Jane Prentice","Natasha Griggs","Michael Keenan","Christopher Pyne","Steve Irons","Dennis Jensen","Dan Tehan","Tony Abbott","Malcolm Turnbull","Warren Truss","Scott Buchholz"]
coalLower = []
labor = ["Tim Watts","Jennie George","Maxine McKew","Roger Price","Duncan Kerr","Brett Raguse","Steve Hutchins","Jodie Campbell","Bob McMullan","Chris Trevor","Arch Bevis","Lindsay Tanner","Belinda Neal","Robert Mitchell","Jon Sullivan","James Bidgood","Sharryn Jackson","Kerry O'Brien","Harry Jenkins","Annette Hurley","Michael Forshaw","Dana Wortley","Matthew Thistlethwaite","Mark Arbib","Annette Ellis","Catryna Bilyk","Mark Bishop","Carol Brown","Doug Cameron","Bob Carr","Kim Carr","Jacinta Collins","Stephen Conroy","Trish Crossin","Sam Dastyari","Chris Evans","Christopher Evans","Don Farrell","John Faulkner","David Feeney","Mark Furner","Alex Gallacher","John Hogg","Sue Lines","Joe Ludwig","Kate Lundy","Anne McEwen","Jan McLucas","Gavin Marshall","Claire Moore","Nova Peris","Helen Polley","Louise Pratt","Nick Sherry","Lisa Singh","Ursula Stephens","Glenn Sterle","Matt Thistlethwaite","Lin Thorp","Mehmet Tillem","Anne Urquhart","Penny Wong","Daryl Melham","Robert McClelland","Geoff Lyons","Sid Sidebottom","Kirsten Livermore","Darren Cheeseman","Mike Symon","Craig Thompson","Mike Kelly","Steve Georganas","Laura Smyth","David Bradbury","Dick Adams","Janelle Saffin","Yvette D'Ath","John Murphy","Deborah O'Neill","Deb O'Neill","Martin Ferguson","Steve Gibbons","Greg Combet","Nicola Roxon","Simon Crean","Peter Garrett","Julia Gillard","Sharon Grierson","Stephen Smith","Craig Emerson","Harry Jenkins Jnr","Kate Ellis","Catherine King","Shayne Neumann","Jason Clare","Gary Gray","Alan Griffin","Maria Vamvakinou","Gai Brodtmann","Ed Husic","Anna Burke","Richard Marles","Sharon Bird","Chris Hayes","Julie Collins","Andrew Leigh","Melissa Parke","Brendan O'Connor","Anthony Albanese","Michelle Rowland","Kevin Rudd","Anthony Byrne","Joel Fitzgibbon","Mark Dreyfus","Jenny Macklin","Amanda Rishworth","Wayne Swan","Warren Snowdon","Tony Zappia","Bill Shorten","Rob Mitchell","Chris Bowen","Michael Danby","Graham Perrett","Bernie Ripoll","Julie Owens","Mark Butler","Justine Elliot","Jill Hall","Tanya Plibersek","Stephen Jones","Nick Champion","Tony Burke","Laurie Ferguson","Kelvin Thomson","Kelvin Thomson"]
laborLower = []
greens =["Peter Whish-Wilson","Larissa Waters","Rachel Siewert","Penny Wright","Adam Bandt","Richard Di Natale","Bob Brown","Sarah Hanson-Young","Scott Ludlam","Christine Milne","Lee Rhiannon"]
greensLower = []
independent = ["Steve Fielding","John Madigan","Andrew Wilkie","Rob Oakeshott","Robert Oakeshott","Tony Windsor","Bob Katter","Nick Xenophon","Craig Thomson"]
indLower = []
for name in coalition:
coalLower.append(name.lower())
for name in labor:
laborLower.append(name.lower())
for name in greens:
greensLower.append(name.lower())
for name in independent:
indLower.append(name.lower())
with open('input.csv','rU') as csvinput:
with open('output.csv', 'w') as csvoutput:
writer = csv.writer(csvoutput, lineterminator='\n')
reader = csv.reader(csvinput, lineterminator='\n')
headers = reader.next()
headers.append('party')
writer.writerow(headers)
for row in reader:
newrows = []
for x in xrange(0, len(row)):
newrows.append(row[x])
nameCount = row[0].split(' ')
if len(nameCount) == 2:
firstname = row[0].split(' ')[1].lower()
lastname = row[0].split(' ')[0].lower()
fullname = firstname + " " + lastname
elif len(nameCount) == 3:
firstname = row[0].split(' ')[2].lower()
lastname = row[0].split(' ')[0].lower() + ' ' + row[0].split(' ')[1].lower()
fullname = firstname + " " + lastname
if fullname in coalLower:
newrows.append("Coalition")
elif fullname in laborLower:
newrows.append("Labor")
elif fullname in greensLower:
newrows.append("Greens")
elif fullname in indLower:
newrows.append("IndependentOrMinor")
else:
newrows.append("Unknown")
if newrows:
writer.writerow(newrows)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment