Reading two csv files as dictionaries with differing key definitions
Higher order functions

You should define a more general function and then use higher order functions to costumize behaviour:

def csv_dict(filename, key_func, value_func):
    final_dict = {}
    with open(filename, 'r') as f:
        csvReader = csv.reader(f)
        next(csvReader, None) # skip the header
        for row in csvReader:
            key = key_func(row)
            final_dict[key] = value_func(row)
    return final_dict

def dict_one(filename):
    return csv_dict(filename,
                    lambda row: row[0],
                    lambda row: row[1])

def dict_two(filename):
    return csv_dict(filename,
                    lambda row: " ".join(row[:3]).replace("  "," "),
                    lambda row: row[4])


Naming is more important than you think

Names like first_dict = {} and second_dict = {} are ugly and should be avoided even in throw-away code.

Enumerating

You can use enumerate to reduce verbosity:

def csv_dict(filename, key_func, value_func):
    with open(first_file, 'r') as f:
        for row_number, row enumerate(csv.reader(f)):
            if row_number == 0: # Skip header
                continue
            key = key_func(row)
            first_dict[key] = value_func(row)


Only write sensible comments

# Second dictionary gives no information and is just noise.