so I have 2 dataframes df1 and df2.
df1
names = ['Bob', 'Joe', '', 'Bob', '0000', 'Alice', 'Joe', 'Alice', 'Bob', '']
df1 = pd.DataFrame({'names': names,'ages': ages})
df2
names_in_student_db = [' Bob', ' Joe ', '', ' Bob ', 'Chris', 'Alice', 'Joe ', 'Alice ', ' Bob ', 'Daniel']
df2 = pd.DataFrame({'student_names': names_in_student_db,'grades': grades})
Now, I want to merge these 2 dataframes but obviously, there are 2 problems:
- names and names_in_student_db are not fully identical.
- Both of them contain duplicates — this seems to be making merge functions to throw an error. Also, duplicates in one column are not the same (meaning let's say, 1st Bob and 3rd Bob in any of these columns are not the same person), but let's say the 2nd Bob in 1st column and 2nd Bob in the 2nd column are the same person.
So how do I write a general code (not tailored for these specific dataframes) to solve this? I'm looking for outer join btw.
My guess is I could create another column in each dataframe, let's call it 'order' column which basically would be basically integers from 0 to 9. And then if I could merge dataframes based on 2 columns (I mean matching 'order1' column with 'order2' and 'names' with 'student_names'). Is that possible? I think that still throws a duplicate-related error though.
source https://stackoverflow.com/questions/71916586/how-to-merge-2-dataframes-on-multiple-columns-containing-duplicates
Comments
Post a Comment