如何合并两个数据框而不获取额外的行?

问题描述 投票:0回答:3

基本上,我有两个数据框,第一个看起来像这样:

df1

第二个是这样的:

df2

我想获取第二个列的“lat”和“lnt”列,并仅当两个数据框中的城市名称匹配时才将其添加到第一个列。我尝试使用

pd.merge()
,但它正在创建具有重复值的新行。 如果可能的话,我想在根本没有任何匹配的行中放入 NaN,但我不想删除或添加行到原始数据帧。

python pandas
3个回答
2
投票

Pandas 合并函数默认为内部联接。由于您希望合并 df2

df1
 的列,因此您应该使用左连接。这将为您提供 
df1
 的所有行以及 
df2
 中的匹配值。

df3 = df1.merge(df2, on = 'city', how = 'left')
    

1
投票
merged_df = df1.merge(df2, how = 'inner', on = ['City'])
    

0
投票
即使我使用以下代码,我仍然得到“附加行”:

merged_distance_df = all_waybill_info_by_cID_distance.merge(dispatch_rider_info[["courier_id", "rider_lat", "rider_lng"]], on = ["courier_id"], how = 'left')
    
© www.soinside.com 2019 - 2024. All rights reserved.