我有两个要附加在一起的数据框。以下是示例。
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_1中的df_2中的代码号不存在时,我才想将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,但在此特定情况下找不到任何东西。
答案 0 :(得分:2)
仅append
过滤后的数据帧
df3 = df2.loc[~df2.Code.isin(df.Code)]
df.append(df3)
Code Title
0 103 general checks
1 107 limits
2 421 horseshoe
3 319 scheduled
4 501 zonal
1 108 lucky eight
4 503 new item
请注意,您可能最终会获得重复的索引,这可能会导致问题。为避免这种情况,您可以.reset_index(drop=True)
获取没有重复索引的新df。
df.append(df3).reset_index(drop=True)
Code Title
0 103 general checks
1 107 limits
2 421 horseshoe
3 319 scheduled
4 501 zonal
5 108 lucky eight
6 503 new item
答案 1 :(得分:0)
您可以先concat
,然后再drop_duplicates
。假设每个数据帧Code
中都是唯一的。
res = pd.concat([df1, df2]).drop_duplicates('Code')
print(res)
Code Title
0 103 general_checks
1 107 limits
2 421 horseshoe
3 319 scheduled
4 501 zonal
1 108 lucky_eight
4 503 new_item
答案 2 :(得分:0)
类似于concat(),您也可以使用merge:
df3 = pd.merge(df_1, df_2, how='outer').drop_duplicates('Code')
Code Title
0 103 general checks
1 107 limits
2 421 horseshoe
3 319 scheduled
4 501 zonal
6 108 lucky eight
9 503 new item