I'm attempting to create a dataset where an email list is enriched with the person's metadata such as department, manager, state, etc. Data set A has a field of email addresses. Data set B also has field of email addresses along with multiple rows of metadata for the person. As illustrated in the attached image, there may be missing values in some records, but not missing in other records. Supposing that the attached data set is for a John Smith, how can I produce a final report where John Smith has values for each metadata field. I need to do this in Python and the metadata should come from the latest data record first and then iterate over the other other records if values are missing. Another point to make is that the metadata field names may change, so it's better that we refer to them by their index value.