Python Pandas:仅当列值唯一时才将数据帧附加到另一个数据帧

我有两个要附加在一起的数据框。以下是示例。


df_1:


Code    Title

103     general checks 

107     limits

421     horseshoe

319     scheduled 

501     zonal 

df_2


Code    Title

103     hello 

108     lucky eight 

421     little toe 

319     scheduled cat

503     new item 

仅当 df_2 中的代码号在 df_1 中不存在时,我才想将 df_2 附加到 df_1。


下面是我想要的数据框:


Code    Title

103     general checks 

107     limits

421     horseshoe

319     scheduled 

501     zonal 

108     lucky eight 

503     new item

我已经通过 Google 和 Stackoverflow 进行了搜索,但在此特定案例中找不到任何内容。


MMMHUHU
浏览 136回答 3
3回答

萧十郎

只是append过滤后的数据框df3 = df2.loc[~df2.Code.isin(df.Code)]df.append(df3)    Code    Title0   103 general checks1   107 limits2   421 horseshoe3   319 scheduled4   501 zonal1   108 lucky eight4   503 new item请注意,您最终可能会得到重复的索引,这可能会导致问题。为避免这种情况,您可以.reset_index(drop=True)获取一个没有重复索引的新 df。df.append(df3).reset_index(drop=True)    Code    Title0   103 general checks1   107 limits2   421 horseshoe3   319 scheduled4   501 zonal5   108 lucky eight6   503 new item

慕标5832272

你可以concat然后drop_duplicates。假设每个数据框内Code都是唯一的。res = pd.concat([df1, df2]).drop_duplicates('Code')print(res)   Code           Title0   103  general_checks1   107          limits2   421       horseshoe3   319       scheduled4   501           zonal1   108     lucky_eight4   503        new_item

泛舟湖上清波郎朗

与concat()类似,您也可以使用merge:df3 = pd.merge(df_1, df_2, how='outer').drop_duplicates('Code')    Code    Title0   103 general checks1   107 limits2   421 horseshoe3   319 scheduled4   501 zonal6   108 lucky eight9   503 new item  
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python