#OSPEDALE occupazioni, associa gli ID gerarchici ai luoghi import csv import codecs import pandas as pd import re import os import io import tokenize output = open('association_occupation_OSPEDALE_luoghi.csv', 'w') csvwriter = csv.writer(output) params = ['recordid', 'occupation_1', 'place_occupation_1_PROVINCIA', 'ID_provincia_1', 'place_occupation_1_COMUNE', 'ID_comune_1', 'place occupation 1 MICROTOPONIMO', 'ID_micro_1', 'place occupation 1 ENTE', 'ID_ente_1', 'occupation_2', 'place_occupation_2_PROVINCIA', 'ID_provincia_2', 'place_occupation_2_COMUNE', 'ID_comune_2', 'place occupation 2 MICROTOPONIMO', 'ID_micro_2', 'place occupation 2 ENTE', 'ID_ente_2', 'occupation_3', 'place_occupation_3_PROVINCIA', 'ID_provincia_3', 'place_occupation_3_COMUNE', 'ID_comune_3', 'place occupation 3 MICROTOPONIMO', 'ID_micro_3', 'place occupation 3 ENTE', 'ID_ente_3'] csvwriter.writerow(params) def get_ID_ente (provincia, comune, ente): link_file = open('/Users/leonardocanova/Library/CloudStorage/OneDrive-UniversityofPisa(1)/Documenti/Progetti università/OVI/Programmazione/ASPO/Luoghi/luoghi_ASPO_tutti_ID_manually_cleaned.csv') reader = csv.DictReader(link_file) for row in reader: ass_provincia = row['EVENTO_PROVINCIA'].lower() ass_comune = row['EVENTO_COMUNE'].lower() ass_edificio = row['EVENTO edificio'].lower() ass_parrocchia = row['EVENTO PARROCCHIA'].lower() ass_micromicro = row['EVENTO micro microtoponimo'].lower() if ente != "" and " ": if ente == ass_micromicro and comune == ass_comune and provincia == ass_provincia: if row['ID_micromicrotoponimo'] != "" and " ": return (row['ID_micromicrotoponimo']) else: return "" elif ente == ass_parrocchia and comune == ass_comune and provincia == ass_provincia: if row['ID_parrocchia'] != "" and " ": return (row['ID_parrocchia']) else: return "" elif ente == ass_edificio and comune == ass_comune and provincia == ass_provincia: if row['ID_edificio'] != "" and " ": return (row['ID_edificio']) else: return "" def get_ID_micro (provincia, comune, micro): link_file = open('/Users/leonardocanova/Library/CloudStorage/OneDrive-UniversityofPisa(1)/Documenti/Progetti università/OVI/Programmazione/ASPO/Luoghi/luoghi_ASPO_tutti_ID_manually_cleaned.csv') reader = csv.DictReader(link_file) for row in reader: ass_provincia = row['EVENTO_PROVINCIA'].lower() ass_comune = row['EVENTO_COMUNE'].lower() ass_micro = row['EVENTO MICROTOPONIMO'].lower() if micro != "" and " ": if micro == ass_micro and comune == ass_comune and provincia == ass_provincia: if row['ID_RESTORE_microtoponimo'] != "" and " ": return (row['ID_RESTORE_microtoponimo']) else: return "" def get_ID_comune (provincia, comune): link_file = open('/Users/leonardocanova/Library/CloudStorage/OneDrive-UniversityofPisa(1)/Documenti/Progetti università/OVI/Programmazione/ASPO/Luoghi/luoghi_ASPO_tutti_ID_manually_cleaned.csv') reader = csv.DictReader(link_file) for row in reader: ass_provincia = row['EVENTO_PROVINCIA'].lower() ass_comune = row['EVENTO_COMUNE'].lower() if comune != "" and " ": if comune == ass_comune and provincia == ass_provincia: if row['ID_RESTORE_comune'] != "" and " ": return (row['ID_RESTORE_comune']) else: return "" def get_ID_provincia (provincia): link_file = open('/Users/leonardocanova/Library/CloudStorage/OneDrive-UniversityofPisa(1)/Documenti/Progetti università/OVI/Programmazione/ASPO/Luoghi/luoghi_ASPO_tutti_ID_manually_cleaned.csv') reader = csv.DictReader(link_file) for row in reader: ass_provincia = row['EVENTO_PROVINCIA'].lower() if provincia != "" and " ": if provincia == ass_provincia: if row['ID_PROVINCIA'] != "" and " ": return (row['ID_PROVINCIA']) else: return "" csv_occupation = open('/Users/leonardocanova/Library/CloudStorage/OneDrive-UniversityofPisa(1)/Documenti/Progetti università/OVI/Programmazione/ASPO/Luoghi/Tabella di lavoro sui dati - OSPEDALE - onomastica - data_eac_ospedale.csv') reader = csv.DictReader(csv_occupation) for row in reader: line = [] recordid = row['recordId'] occupation_1 = row['occupation_1'] occupation_2 = row['occupation_2'] occupation_3 = row['occupation_3'] place_occupation_1_PROVINCIA = row['place occupation 1 PROVINCIA'].lower() place_occupation_1_COMUNE = row['place occupation 1 COMUNE'].lower() place_occupation_1_MICROTOPONIMO = row['place occupation 1 MICROTOPONIMO'].lower() place_occupation_1_ENTE = row['place occupation 1 ENTE'].lower() place_occupation_2_PROVINCIA = row['place occupation 2 PROVINCIA'].lower() place_occupation_2_COMUNE = row['place occupation 2 COMUNE'].lower() place_occupation_2_MICROTOPONIMO = row['place occupation 2 MICROTOPONIMO'].lower() place_occupation_2_ENTE = row['place occupation 2 ENTE'].lower() place_occupation_3_PROVINCIA = row['place occupation 3 PROVINCIA'].lower() place_occupation_3_COMUNE = row['place occupation 3 COMUNE'].lower() place_occupation_3_MICROTOPONIMO = row['place occupation 3 MICROTOPONIMO'].lower() place_occupation_3_ENTE = row['place occupation 3 ENTE'].lower() ID_provincia_1 = get_ID_provincia (place_occupation_1_PROVINCIA) ID_comune_1 = get_ID_comune (place_occupation_1_PROVINCIA, place_occupation_1_COMUNE) ID_micro_1 = get_ID_micro (place_occupation_1_PROVINCIA, place_occupation_1_COMUNE, place_occupation_1_MICROTOPONIMO) ID_ente_1 = get_ID_ente (place_occupation_1_PROVINCIA, place_occupation_1_COMUNE, place_occupation_1_ENTE) ID_provincia_2 = get_ID_provincia (place_occupation_2_PROVINCIA) ID_comune_2 = get_ID_comune (place_occupation_2_PROVINCIA, place_occupation_2_COMUNE) ID_micro_2 = get_ID_micro (place_occupation_2_PROVINCIA, place_occupation_2_COMUNE, place_occupation_2_MICROTOPONIMO) ID_ente_2 = get_ID_ente (place_occupation_2_PROVINCIA, place_occupation_2_COMUNE, place_occupation_2_ENTE) ID_provincia_3 = get_ID_provincia (place_occupation_3_PROVINCIA) ID_comune_3 = get_ID_comune (place_occupation_3_PROVINCIA, place_occupation_3_COMUNE) ID_micro_3 = get_ID_micro (place_occupation_3_PROVINCIA, place_occupation_3_COMUNE, place_occupation_3_MICROTOPONIMO) ID_ente_3 = get_ID_ente (place_occupation_3_PROVINCIA, place_occupation_3_COMUNE, place_occupation_3_ENTE) line.append (recordid) line.append (occupation_1) line.append (place_occupation_1_PROVINCIA) line.append (ID_provincia_1) line.append (place_occupation_1_COMUNE) line.append (ID_comune_1) line.append (place_occupation_1_MICROTOPONIMO) line.append (ID_micro_1) line.append (place_occupation_1_ENTE) line.append (ID_ente_1) line.append (occupation_2) line.append (place_occupation_2_PROVINCIA) line.append (ID_provincia_2) line.append (place_occupation_2_COMUNE) line.append (ID_comune_2) line.append (place_occupation_2_MICROTOPONIMO) line.append (ID_micro_2) line.append (place_occupation_2_ENTE) line.append (ID_ente_2) line.append (occupation_3) line.append (place_occupation_3_PROVINCIA) line.append (ID_provincia_3) line.append (place_occupation_3_COMUNE) line.append (ID_comune_3) line.append (place_occupation_3_MICROTOPONIMO) line.append (ID_micro_3) line.append (place_occupation_3_ENTE) line.append (ID_ente_3) csvwriter.writerow(line) #print (line) output.close()