【问题标题】:Pandas merge results in NaN valuesPandas 合并结果为 NaN 值
【发布时间】:2021-06-19 19:08:18
【问题描述】:

我正在尝试合并两个数据框,但我收到其中一列的 NaN 值。

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

【问题讨论】:

    标签: python pandas dataframe merge nan


    【解决方案1】:

    为了匹配,删除df2['Postal Code']中的空格:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-04-29
      • 2023-04-06
      • 2018-06-25
      • 2023-01-27
      • 1970-01-01
      • 2016-01-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多