I’ve had to work recently on an older Linux based machine and as such most of my usual routes to edit and display data aren’t available to me. I needed to preform a join between the Small Areas geometry and the Small Areas table, both of which are available from the CSO’s website here. Even though the csv only has ~18,000 rows, the field calculator in QGIS 3.2 Bonn couldn’t cope and kept crashing.
Enter python to the rescue, I downloaded the Geany python IDE which I find to be nice and lightweight for older computers. I needed to remove the first 7 characters from the ‘GEOGID’ field. All of the values in this column started with ‘SA2017_’. The following is a quick few lines in python 2 to remove the first 7 characters using python’s built in csv module. For reference, on this very average laptop from 2011 it took 3 seconds to run.
import csv with open('SAPS2016_SA2017.csv', 'rb') as input_file, open('output.csv', 'w') as output_file: reader, writer = csv.reader(input_file), csv.writer(output_file) first_row = reader.next() first_row.append("Strp_GeogID") writer.writerow(first_row) for row in reader: item_to_change = row modified_item = item_to_change[7:] row.append(modified_item) writer.writerow(row)