我有這兩個數(shù)據(jù)框:df1 = pd.DataFrame({'A': ['A0', 'A1', 'A2'],'B': ['B0', 'B1', 'B2']})
df2 = pd.DataFrame({'A': ['A0', 'A1', 'A3'],'B': ['B0', 'B1', 'B2']})我現(xiàn)在想通過列中的條目合并這兩個數(shù)據(jù)框'A'。但我不想保留匹配的行,而是保留彼此不匹配的行。這意味著,我想要一個看起來像這樣的新數(shù)據(jù)框:df_new = pd.DataFrame({'A':['A3'], 'B':['B2']})我怎么能這樣做?
2 回答

猛跑小豬
TA貢獻1858條經(jīng)驗 獲得超8個贊
與外部聯(lián)接合并會給您類似的結(jié)果:
df1.merge(df2, how = 'outer', on = 'A', indicator = True)
A B_x B_y _merge
0 A0 B0 B0 both
1 A1 B1 B1 both
2 A2 B2 NaN left_only
3 A3 NaN B2 right_only
可以通過以下方式過濾query:
df1.merge(df2, how = 'outer', on = 'A', indicator = True).query("_merge != 'both'")
A B_x B_y _merge
2 A2 B2 NaN left_only
3 A3 NaN B2 right_only
注意indicator = True創(chuàng)建_merge適合過濾行的列。
添加回答
舉報
0/150
提交
取消