基本上,我有两个数据框,第一个看起来像这样:
第二个是这样的:
我想获取第二个列的“lat”和“lnt”列,并仅当两个数据框中的城市名称匹配时才将其添加到第一个列。我尝试使用
pd.merge()
,但它正在创建具有重复值的新行。
如果可能的话,我想在根本没有任何匹配的行中放入 NaN,但我不想删除或添加行到原始数据帧。
Pandas 合并函数默认为内部联接。由于您希望合并 df2
到
df1
的列,因此您应该使用左连接。这将为您提供
df1
的所有行以及
df2
中的匹配值。
df3 = df1.merge(df2, on = 'city', how = 'left')
merged_df = df1.merge(df2, how = 'inner', on = ['City'])
merged_distance_df = all_waybill_info_by_cID_distance.merge(dispatch_rider_info[["courier_id", "rider_lat", "rider_lng"]], on = ["courier_id"], how = 'left')