In [3]:
import numpy as np, pandas as pd, json
from pygeocoder import Geocoder
import matplotlib.pyplot as plt
%matplotlib inline
In [82]:
df=pd.read_excel('http://www.recensamantromania.ro/wp-content/uploads/2013/07/sR_TAB_13.xls')
megye=[]
for i in df.index[6:3434]:
    try:
        if np.isnan(df.ix[int(i)-1,u'13. POPULATIA  STABILA DUPA RELIGIE  - JUDETE, MUNICIPII, ORASE, COMUNE']) and\
            np.isnan(df.ix[int(i)+1,u'13. POPULATIA  STABILA DUPA RELIGIE  - JUDETE, MUNICIPII, ORASE, COMUNE']):
            megye.append([i,df.ix[i,u'13. POPULATIA  STABILA DUPA RELIGIE  - JUDETE, MUNICIPII, ORASE, COMUNE']])
    except:
        pass
In [83]:
#run once only!
df=df.drop([u'Unnamed: 1',u'Unnamed: 24'],axis=1)
df.columns=[u'Falu',u'Ortodox',u'Katolikus',u'Református',u'Pünkösdista',u'Görög katolikus',u'Baptista',u'Adventista',u'Muzulmán',u'Unitárius',u'Jehova tanúja',u'Lutheránus evangélikus',u'Ókatolikus',u'Lutheránus',u'Szerb ortodox',u'Evangélikus',u'Kálvinista',u'Zsidó',u'Örmény',u'Más',u'Nem vallásos',u'Ateista',u'N/A']
df=df.drop(u'N/A',axis=1)
In [84]:
#run once only!
df=df.loc[df.index[7:]]
In [6]:
data={}
data2={}
data3={}
ez=0
for i in df.index:
    try:
        if megye[ez][0]<i: ez+=1
        if not (megye[ez][1]==df.ix[int(i),u'Falu']):
            if df.ix[int(i),u'Falu'] not in [u'  A. MUNICIPII SI ORASE',u'  B. COMUNE',np.NaN,'NaN']:
                if megye[ez-1][1][2:] not in data: data[megye[ez-1][1][2:]]={}
                data[megye[ez-1][1][2:]][df.ix[int(i),u'Falu'][3:]]={}
                data3[df.ix[int(i),u'Falu'][2:]]={}
                for j in df.columns[1:]:
                    if df.ix[int(i),j] not in [u'*',u'-',np.NaN,'NaN']:
                        data[megye[ez-1][1][2:]][df.ix[int(i),u'Falu'][3:]][j]=df.ix[int(i),j]   
                        data3[df.ix[int(i),u'Falu'][2:]][j]=df.ix[int(i),j] 
        else: 
            if df.ix[int(i),u'Falu'] not in [u'  A. MUNICIPII SI ORASE',u'  B. COMUNE',np.NaN,'NaN']:
                data2[df.ix[int(i),u'Falu'][2:]]={}
                for j in df.columns[1:]:
                    if df.ix[int(i),j] not in [u'*',u'-',np.NaN,'NaN']:
                        data2[df.ix[int(i),u'Falu'][2:]][j]=df.ix[int(i),j]  
    except: pass
In [10]:
#add Bucharest to main dataset
data['MUNICIPIUL BUCURESTI']={}
data['MUNICIPIUL BUCURESTI']['MUNICIPIUL BUCURESTI']=data2['MUNICIPIUL BUCURESTI']
In [11]:
#save religion data
import json
file('data.json','w').write(json.dumps(data))
file('data2.json','w').write(json.dumps(data2))
file('data3.json','w').write(json.dumps(data3))
In [165]:
#pretty hungarian names for settlements
hun={"115600 BALA":u"Bala",
"120343 ZAGAR":u"Zágor",
"119894 ORAS UNGHENI":u"Nyárádtõ",
"119974 VALEA LARGA":u"Mezõceked",
"116796 FANTANELE":u"Gyulakuta",
"117505 HODOSA":u"Székelyhodos",
"116590 EREMITU":u"Nyárádremete",
"117113 GLODENI":u"Marossárpatak",
"114809 MUNICIPIUL REGHIN":u"Szászrégen",
"114970 ACATARI":u"Ákosfalva",
"119803 SINCAI":u"Mezõsámsod",
"115771 BICHIS":u"Magyarbükkös",
"119590 SOLOVASTRU":u"Görgényoroszfalu",
"115959 CEUASU DE CAMPIE":u"Mezõcsávás",
"116046 CHETANI":u"Maroskece",
"114854 ORAS SOVATA":u"Szováta",
"118931 RASTOLITA":u"Ratosnya",
"114453 SANTANA DE MURES":u"Marosszentanna",
"116439 CUCI":u"Kutyfalva",
"116126 CHIHERU DE JOS":u"Alsóköhér",
"119858 TAURENI":u"Mezõtóhát",
"115389 BAND":u"Mezõbánd",
"116723 FARAGAU":u"Faragó",
"114417 SANGEORGIU DE MURES":u"Marosszentgyörgy",
"117426 HODAC":u"Görgényhodák",
"120496 SARATENI":u"Sóvárad",
"119242 ORAS SARMASU":u"Nagysármás",
"120138 VATAVA":u"Felsõrépás",
"117177 GORNESTI":u"Gernyeszeg",
"120478 CHIBED":u"Kibéd",
"114382 SANCRAIU DE MURES":u"Marosszentkirály",
"115824 BOGATA":u"Marosbogát",
"115183 APOLD":u"Apold",
"119331 ORAS SANGEORGIU DE PADURE":u"Erdõszentgyörgy",
"118209 MICA":u"Mikefalva",
"120511 BERENI":u"Székelybere",
"117783 IDECIU DE JOS":u"Alsóidecs",
"119750 SAULIA":u"Mezõsályi",
"117550 IBANESTI":u"Libánfalva",
#"120502 MADARAS":u"Mezõmadaras",
"117319 GURGHIU":u"Görgényszentimre",
"117925 LIVEZENI":u"Jedd",
"115147 ALUNIS":u"Magyaró",
"119466 SANPAUL":u"Kerelõszentpál",
"119386 SANGER":u"Mezõszengyel",
"117042 GHINDARI":u"Makfalva",
"119723 SUSENI":u"Marosfelfalu",
"118058 LUNCA BRADULUI":u"Palotailva",
"115851 BREAZA":u"Beresztelke",
"120316 VOIVODENI":u"Vajdaszentivány",
"120487 CORUNCA":u"Koronka",
"120254 VANATORI":u"Héjjasfalva",
"114319 MUNICIPIUL TARGU MURES":u"Marosvásárhely",
"116867 GALESTI":u"Nyárádgálfalva",
"118370 MIHESU DE CAMPIE":u"Mezõméhes",
"118575 OGRA":u"Marosugra",
"118469 NADES":u"Szásznádas",
"118753 PASARENI":u"Backamadaras",
"116983 GHEORGHE DOJA":u"Lukafalva",
"119625 STANCENI":u"Gödemesterháza",
"116493 DANES":u"Dános",
"115637 BALAUSERI":u"Balavásár",
"116545 DEDA":u"Déda",
"115708 BEICA DE JOS":u"Alsóbölkény",
"117998 LUNCA":u"Tekeújfalu",
"114355 CRISTESTI":u"Maroskeresztúr",
"118995 RICIU":u"Mezõrücs",
"120076 VARGATA":u"Csíkfalva",
"119527 SANPETRU DE CAMPIE":u"Uzdiszentpéter",
"115236 ATINTIS":u"Cintos",
"117667 ICLANZEL":u"Kisikland",
"116938 GANESTI":u"Vámosgálfalva",
"117275 GREBENISU DE CAMPIE":u"Mezõgerebenes",
"116224 COZMA":u"Kozmatelke",
"114925 MUNICIPIUL TARNAVENI":u"Dicsõszentmárton",
"114514 MUNICIPIUL SIGHISOARA":u"Segesvár",
"118799 PETELEA":u"Petele",
"120174 VETCA":u"Székelyvécke",
"119153 RUSII-MUNTI":u"Marosoroszfalu",
"115307 BAHNEA":u"Bonyha",
"116171 COROISANMARTIN":u"Kóródszentmárton",
"114603 ALBESTI":u"Fehéregyháza",
"120370 ZAU DE CAMPIE":u"Mezõzáh",
"116395 CUCERDEA":u"Oláhkocsárd",
"118691 PANET":u"Mezõpanit",
"115076 ADAMUS":u"Ádámos",
"115520 BATOS":u"Bátos",
"117827 ORAS IERNUT":u"Radnót",
"115897 BRANCOVENESTI":u"Marosvécs",
"114710 ORAS LUDUS":u"Marosludas",
"116288 CRACIUNESTI":u"Nyárádkarácson",
"119661 SUPLAC":u"Küküllõszéplak",
"118511 NEAUA":u"Havad",
"119206 SASCHIZ":u"Szászkézd",
"118094 MAGHERANI":u"Nyárádmagyarós",
"118281 ORAS MIERCUREA NIRAJULUI":u"Nyárádszereda",
"118824 POGACEAUA":u"Mezõpagocsa",
"116652 ERNEI":u"Nagyernye",
"115575 BAGACIU":u"Szászbogács",
"120218 VIISOARA":u"Csatófalva",
"116340 CRAIESTI":u"Mezõkirályfalva",
"118637 PAPIU ILARIAN":u"Mezõbodon",
"63866 BELIN":u"Bölön",
"64318 GHELINTA":u"Gelence",
"65105 MERENI":u"Kézdialmás",
"64719 POIAN":u"Kézdiszentkereszt",
"65099 VALEA MARE":u"Nagypatak",
"63394 MUNICIPIUL SFANTU GHEORGHE":u"Sepsiszentgyörgy",
"63633 BARCANI":u"Zágonbárkány",
"65011 ZAGON":u"Zágon",
"64130 CATALINA":u"Szentkatolna",
"63688 SITA BUZAULUI":u"Bodzaszita",
"63777 AITA MARE":u"Nagyajta",
"64773 RECI":u"Réty",
"64005 BRATES":u"Barátos",
"64194 CERNAT":u"Csernáton",
"65121 BIXAD":u"Sepsibükszád",
"64238 CHICHIS":u"Kökös",
"63937 BOROSNEU MARE":u"Nagyborosnyó",
"63447 ORAS BARAOLT":u"Barót",
"64568 MOACSA":u"Maksa",
"65147 DALNIC":u"Dálnok",
"65139 MICFALAU":u"Mikóujfalu",
"64997 VARGHIS":u"Vargyas",
"65113 ARCUS":u"Árkos",
"65154 ESTELNIC":u"Esztelnek",
"63553 COMANDAU":u"Kommandó",
"63526 ORAS COVASNA":u"Kovászna",
"65048 ZABALA":u"Zabola",
"64390 HAGHIG":u"Hídvég",
"63740 MUNICIPIUL TARGU SECUIESC":u"Kézdivásárhely",
"64826 SANZIENI":u"Kézdiszentlélek",
"64639 OZUN":u"Uzon",
"63580 ORAS INTORSURA BUZAULUI":u"Bodzaforduló",
"64041 BRADUT":u"Bardóc",
"64906 VALEA CRISULUI":u"Sepsikõröspatak",
"64602 OJDULA":u"Ozsdola",
"64461 LEMNIA":u"Lemhény",
"64096 BRETCU":u"Bereck",
"64942 VALCELE":u"Elõpatak",
"63802 BATANI":u"Nagybacon",
"64265 DOBARLAU":u"Dobolló",
"64504 MALNAS":u"Málnás",
"64345 GHIDFALAU":u"Gidófalva",
"63893 BODOC":u"Sepsibodok",
"64871 TURIA":u"Torja",
"64425 ILIENI":u"Illyefalva",
"83936 BILBOR":u"Bélbor",
"86519 SANTIMBRU":u"Büdösfürdõ",
"83320 MUNICIPIUL MIERCUREA CIUC":u"Csíkszereda",
"84380 DARJIU":u"Székelyderzs",
"86495 RACU":u"Csíkrákos",
"86222 ULIES":u"Kányád",
"84754 LUNCA DE SUS":u"Gyimesfelsõlok",
"83133 MUNICIPIUL ODORHEIU SECUIESC":u"Székelyudvarhely",
"83525 ORAS CRISTURU SECUIESC":u"Székelykeresztúr",
"85412 REMETEA":u"Gyergyóremete",
"83428 ORAS BAILE TUSNAD":u"Tusnádfürdõ",
"86366 ZETEA":u"Zetelaka",
"83151 BRADESTI":u"Fenyéd",
"84086 CIUMANI":u"Gyergyócsomafalva",
"85127 MUGENI":u"Bögöz",
"84594 LAZAREA":u"Gyergyószárhegy",
"86453 TOMESTI":u"Csíkszenttamás",
"83749 ORAS VLAHITA":u"Szentegyháza",
"85341 PRAID":u"Parajd",
"85582 SECUIENI":u"Újszékely",
"84148 CORBU":u"Gyergyóholló",
"85074 MIHAILENI":u"Csíkszentmihály",
"85984 SIMONESTI":u"Siménfalva",
"86339 VOSLABENI":u"Vasláb",
"83963 CAPALNITA":u"Kápolnásfalu",
"85289 PLAIESII DE JOS":u"Kászonaltíz",
"86461 CICEU":u"Csíkcsicsó",
"86479 LELICENI":u"Csíkszentlélek",
"85877 SUBCETATE":u"Gyergyóvárhegy",
"84415 FRUMOASA":u"Csíkszépvíz",
"85680 SANCRAIENI":u"Csíkszentkirály",
"83375 PAULENI-CIUC":u"Csíkpálfalva",
"84264 DEALU":u"Oroszhegy",
"84558 JOSENI":u"Gyergyóalfalu",
"84344 DITRAU":u"Gyergyóditró",
"85243 OCLAND":u"Oklánd",
"85920 SUSENI":u"Gyergyóújfalu",
"86446 COZMENI":u"Csíkkozmás",
"84629 LUETA":u"Lövéte",
"84656 LUNCA DE JOS":u"Gyimesközéplok",
"84460 GALAUTAS":u"Galócás",
"83491 ORAS BORSEC":u"Borszék",
"83981 CIUCSANGEORGIU":u"Csíkszentgyörgy",
"83785 ATID":u"Etéd",
"86133 TULGHES":u"Gyergyótölgyes",
"84825 LUPENI":u"Farkaslaka",
"85626 SICULENI":u"Madéfalva",
"85056 MERESTI":u"Homoródalmás",
"86311 VARSAG":u"Székelyvarság",
"85788 SANMARTIN":u"Csíkszentmárton",
"85467 SACEL":u"Székelyandrásfalva",
"85760 SANDOMINIC":u"Csíkszentdomokos",
"83847 AVRAMESTI":u"Szentábrahám",
"84175 CORUND":u"Korond",
"84102 CARTA":u"Csíkkarcfalva",
"83464 ORAS BALAN":u"Balánbánya",
"86501 SATU MARE":u"Máréfalva",
"84923 MARTINIS":u"Homoródszentmárton",
#"86438 MADARAS":u"Csíkmadaras",
"86188 TUSNAD":u"Tusnád",
"86487 PORUMBENI":u"Nagygalambfalva",
"83632 MUNICIPIUL  TOPLITA":u"Maroshévíz",
"83561 MUNICIPIUL  GHEORGHENI":u"Gyergyószentmiklós",
"85528 SARMAS":u"Salamás",
"83197 FELICENI":u"Felsõboldogfalva",
"84237 DANESTI":u"Csíkdánfalva"}
In [166]:
hun2={}
for i in hun.keys():
    hun2[i[str.find(i,' ')+1:]]=hun[i]
file('hun.json','w').write(json.dumps(hun2))
In [4]:
#county name converter
cc={}
for i in pd.read_csv('ro.csv').T.iteritems():
    if ' '+i[1][11].upper() not in cc: cc[' '+i[1][11].upper()]=i[1][9].upper()

#fix db
cc['Bicazu ']='BACAU'
cc['Municipiul Brasov']='BRASOV'
cc['Oras intorsura ']='COVASNA'
cc['Sanmihaiu de ']='MURES'
cc['Municipiul Resita CS']='CARAS-SEVERIN'


#hun names
hun3={}
dh=pd.read_csv('magyar.csv',sep='|').dropna(axis=0)
for i in dh.T.iteritems():
    try:
        m=cc[i[1][1][str.find(i[1][1],',')+1:]] #megye
        if m not in hun3: hun3[m]={}
        f=i[1][1][:str.find(i[1][1],',')].upper() #kozseg
        if (i[1][2]):
            if  (i[1][0].upper()[:-1]==f): # falu egyben kozsegkozpont
                hun3[m][f]=i[1][2]
            if  ('MUNICIPIUL '+i[1][0].upper()[:-1]==f): # muni egyben kozsegkozpont
                hun3[m][f]=i[1][2]
            if  ('ORAS '+i[1][0].upper()[:-1]==f): # varos egyben kozsegkozpont
                hun3[m][f]=i[1][2]
    except: pass
    
file('hun2.json','w').write(json.dumps(hun3))
In [167]:
#szekelyfold aggregation

#define non-szekelyfold regions
non=[
"STANCENI",
"RASTOLITA",
"DEDA",
"RUSII-MUNTI",
"ALUNIS",
"MUNICIPIUL REGHIN",
"BATOS",
"APOLD",
"MUNICIPIUL SIGHISOARA",
"SASCHIZ",
"ALBESTI",
"DANES",
"VIISOARA",
"ZAGAR",
"NADES",
"BAGACIU",
"MICA",
"CUCERDEA",
"ADAMUS",
"MUNICIPIUL TARNAVENI",
"BICHIS",
"CHETANI",
"ORAS IERNUT",
"ORAS LUDUS",
"PAPIU ILARIAN",
"SANGER",
"MIHESU DE CAMPIE",
"ORAS SARMASU",
"POGACEAUA",
"SANPETRU DE CAMPIE",
"BREAZA",
"PETELEA",
"BEICA DE JOS",
"COZMA",
"BALA",
"LUNCA BRADULUI",
"VATAVA",
"FARAGAU",
"LUNCA",
"SOLOVASTRU",
"BRANCOVENESTI",
"SUSENI",
"IDECIU DE JOS",
"CRAIESTI",
"TAURENI",
"VALEA LARGA",
"SAULIA",
"ZAU DE CAMPIE",
"GURGHIU",
"IBANESTI",
"HODAC",
"VOIVODENI",
"GANESTI",
"CUCI",
"ATINTIS",
"BOGATA"
]
file('non.json','w').write(json.dumps(non))
In [ ]:
coords={}
de=pd.read_csv('hr.csv')
for i in de.T.iteritems():
    if i[1][5]!='V':
        coords[i[1][8].upper()]=[i[1][0],i[1][1]]
    coords[i[1][2].upper()]=[i[1][0],i[1][1]]
de=pd.read_csv('cv.csv')
for i in de.T.iteritems():
    if i[1][5]!='V':
        coords[i[1][8].upper()]=[i[1][0],i[1][1]]
    coords[i[1][2].upper()]=[i[1][0],i[1][1]]
de=pd.read_csv('ms.csv')
for i in de.T.iteritems():
    if i[1][5]!='V':
        coords[i[1][8].upper()]=[i[1][0],i[1][1]]
    coords[i[1][2].upper()]=[i[1][0],i[1][1]]

#fix db
coords['ORAS SANGEORGIU DE PADURE']=[Geocoder.geocode('SANGEORGIU DE PADURE').coordinates[1],Geocoder.geocode('SANGEORGIU DE PADURE').coordinates[0]]
coords['RICIU']=[Geocoder.geocode('RICIU, MURES, ROMANIA').coordinates[1],Geocoder.geocode('RICIU, MURES, ROMANIA').coordinates[0]]    

import json
file('coords.json','w').write(json.dumps(coords))
In [2]:
#parse country
coords={}
de=pd.read_csv('ro.csv')
for i in de.T.iteritems():
    if i[1][5]!='V':
        coords[i[1][8].upper()]=[i[1][0],i[1][1]]
    coords[i[1][2].upper()]=[i[1][0],i[1][1]]

#reprocess hungarian
de=pd.read_csv('hr.csv')
for i in de.T.iteritems():
    if i[1][5]!='V':
        coords[i[1][8].upper()]=[i[1][0],i[1][1]]
    coords[i[1][2].upper()]=[i[1][0],i[1][1]]
de=pd.read_csv('cv.csv')
for i in de.T.iteritems():
    if i[1][5]!='V':
        coords[i[1][8].upper()]=[i[1][0],i[1][1]]
    coords[i[1][2].upper()]=[i[1][0],i[1][1]]
de=pd.read_csv('ms.csv')
for i in de.T.iteritems():
    if i[1][5]!='V':
        coords[i[1][8].upper()]=[i[1][0],i[1][1]]
    coords[i[1][2].upper()]=[i[1][0],i[1][1]]
    
#fix db
coords['ORAS SANGEORGIU DE PADURE']=[Geocoder.geocode('SANGEORGIU DE PADURE').coordinates[1],Geocoder.geocode('SANGEORGIU DE PADURE').coordinates[0]]
coords['RICIU']=[Geocoder.geocode('RICIU, MURES, ROMANIA').coordinates[1],Geocoder.geocode('RICIU, MURES, ROMANIA').coordinates[0]]    

import json
file('coords2.json','w').write(json.dumps(coords))
In [88]:
#parse country
coords={}
de=pd.read_csv('ro.csv')
for i in de.T.iteritems():
    if i[1][9].upper() not in coords: coords[i[1][9].upper()]={}
    if i[1][5]!='V':
        coords[i[1][9].upper()][i[1][8].upper()]=[i[1][0],i[1][1]]
    coords[i[1][9].upper()][i[1][2].upper()]=[i[1][0],i[1][1]]
    if i[1][11].upper() not in cc: cc[i[1][11].upper()]=i[1][9].upper()

#fix db
coords['MURES']['ORAS SANGEORGIU DE PADURE']=[Geocoder.geocode('SANGEORGIU DE PADURE').coordinates[1],Geocoder.geocode('SANGEORGIU DE PADURE').coordinates[0]]
coords['MURES']['RICIU']=[Geocoder.geocode('RICIU, MURES, ROMANIA').coordinates[1],Geocoder.geocode('RICIU, MURES, ROMANIA').coordinates[0]]    
coords['MUNICIPIUL BUCURESTI']={'MUNICIPIUL BUCURESTI':coords['BUCURESTI']['MUNICIPIUL BUCURESTI']}
coords['HARGHITA']['RICIU']=[Geocoder.geocode('RICIU, MURES, ROMANIA').coordinates[1],Geocoder.geocode('RICIU, MURES, ROMANIA').coordinates[0]]    
import json
file('coords2.json','w').write(json.dumps(coords))