I am trying to write a new row on CSV A based on the ID number if the ID number. For example as seen on CSV B if ID = 1 then the student is a Female, ID = 2 is a Male.
CSV A (has 3 columns)
ID, Age, FirstName 1, 18, Lia 2, 18, Joe 2, 18, John
CSV B (has 2 columns)
ID, Gender 1, Female 2, Male
Based on this information the desired output is below:
ID, Age, FirstName, Gender 1, 18, Lia, Female 2, 18, Joe, Male 2, 18, John, Male
How can I achieve this using the Python csv writer?
Advertisement
Answer
I hope you are doing good, well this logic is basic but as you mentioned above you are new to python so I have done some code for your reference which is attached below
import csv newColumn = '' genderDict = {} with open('CSVB.csv') as csv_file: csv_reader = csv.reader(csv_file, delimiter=',') line_count = 0 for row in csv_reader: if line_count == 0: newColumn = row[1] line_count = line_count+1 else: genderDict[row[0]] = row[1] with open('CSVA.csv') as csv_file: csv_reader = csv.reader(csv_file, delimiter=',') line_count = 0 for row in csv_reader: if line_count == 0: with open('OUTPUT.csv', mode='w') as employee_file: output_writer = csv.writer(employee_file, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL) row.append(newColumn) output_writer.writerow(row) line_count += 1 else: with open('OUTPUT.csv', mode='a') as employee_file: output_writer = csv.writer(employee_file, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL) row.append(genderDict[row[0]]) output_writer.writerow(row) line_count += 1