Pandas merge results in NaN values

Viewed 154

I'm trying to merge two data frames but I'm receiving NaN values for one of the columns.

df1.head()

Postal Code Latitude    Longitude
0   M1B 43.806686   -79.194353
1   M1C 43.784535   -79.160497
2   M1E 43.763573   -79.188711
3   M1G 43.770992   -79.216917
4   M1H 43.773136   -79.239476

df2.head(10)

Postal Code Average Price
0   M2 L    $7,951,384
1   M3 B    $5,339,131
2   M4 W    $5,186,446
3   M4 Y    $5,149,990
4   M5 P    $4,443,730
5   M2 B    $4,288,000
6   M3 C    $4,253,584
7   M2 P    $4,187,848
8   M4 N    $3,890,934
9   M5 H    $3,859,000


df3 = pd.merge(df1,df2,how='left',left_on='Postal Code',right_on='Postal Code')
 

 Postal Code    Latitude    Longitude   Average Price
0   M1B         43.806686   -79.194353     NaN
1   M1C         43.784535   -79.160497     NaN
2   M1E         43.763573   -79.188711     NaN
3   M1G         43.770992   -79.216917     NaN
4   M1H         43.773136   -79.239476     NaN

df_real.dtypes
Postal Code      object
Average Price     int64

df_geo_coor.dtypes
Postal Code     object
Latitude       float64
Longitude      float64
1 Answers

For matching is necessary remove space in df2['Postal Code']:

df2['Postal Code'] = df2['Postal Code'].str.replace('\s+','')
df3 = pd.merge(df1,df2,how='left',on='Postal Code')
Related