I'm trying to merge two dataframes: 'new_df' and 'df3'. new_df contains years and months, and df3 contains years, months and other columns.
I've cast most of the columns as object, and tried to merge them both. The merge 'works' as doesn't return an error, but my final datafram is all empty, only the year and month columns are correct.
new_df
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 119 entries, 0 to 118
Data columns (total 3 columns):
 #   Column     Non-Null Count  Dtype         
---  ------     --------------  -----         
 0   date_test  119 non-null    datetime64[ns]
 1   year       119 non-null    object        
 2   month      119 non-null    object        
dtypes: datetime64[ns](1), object(2)
df3
<class 'pandas.core.frame.DataFrame'>
Int64Index: 191 entries, 53 to 1297
Data columns (total 11 columns):
 #   Column       Non-Null Count  Dtype 
---  ------       --------------  ----- 
 0   case_number  191 non-null    object
 1   date         191 non-null    object
 2   year         191 non-null    object
 3   country      191 non-null    object
 4   area         191 non-null    object
 5   location     191 non-null    object
 6   activity     191 non-null    object
 7   fatal_y_n    182 non-null    object
 8   time         172 non-null    object
 9   species      103 non-null    object
 10  month        190 non-null    object
dtypes: object(11)
I've tried this line of code:
df_joined = pd.merge(left=new_df, right=df3, how='left', on=['year','month'])
I was expecting a table with only filled fields in all columns, instead i got the table:

 
    