Untitled
unknown
plain_text
a month ago
1.4 kB
1
Indexable
import csv old_data_path = "path_to_old_data.csv" new_data_path = "path_to_new_data.csv" output_path = "combined_table_data.csv" with open(old_data_path, "r") as old_file, open(new_data_path, "r") as new_file: old_reader = list(csv.DictReader(old_file)) new_reader = list(csv.DictReader(new_file)) old_headers = old_reader[0].keys() new_headers = new_reader[0].keys() combined_headers = list(old_headers) + [header for header in new_headers if header != "TABLE_NAME"] old_table_map = {row["TABLE_NAME"]: row for row in old_reader} new_table_map = {row["TABLE_NAME"]: row for row in new_reader} all_table_names = set(old_table_map.keys()).union(new_table_map.keys()) combined_data = [] for table_name in sorted(all_table_names): old_row = old_table_map.get(table_name, {header: "Not Found" for header in old_headers}) new_row = new_table_map.get(table_name, {header: "Not Found" for header in new_headers}) combined_row = {**old_row, **{key: new_row[key] for key in new_headers if key != "TABLE_NAME"}} combined_data.append(combined_row) with open(output_path, "w", newline="") as output_file: writer = csv.DictWriter(output_file, fieldnames=combined_headers) writer.writeheader() writer.writerows(combined_data) print(f"Combined data saved to: {output_path}")
Editor is loading...
Leave a Comment