2017-02-21 8 views
1

Итак, у меня есть две панды dataframes:Объединение данных панды кадры

a  b 
abc def 
ghi jkl 
mno pqr 

и

a  b 
abc def 
ghi jkl 
stu vwx 

То, что я хочу сделать, это объединить эти dataframes, но держать только те, которые не перекрываются (строка 3 в данном кадре 1 и 2)

a  b 
stu vwx 
mno pqr 
+1

Подумайте о редактировании вопрос с несколько более значимым данных (например, 'col A',' col B', 'A1',' B1' и т. д.), поскольку это упростит вам то, что вы имеете в виду. Также сообщите нам, что вы уже пробовали, поделитесь некоторым кодом. –

ответ

1

Вы можете использовать merge с внешним соединением и параметр indicator, затем процеживают строки, где не ценят both по boolean indexing и последней колонке удалить _merge по drop и reset_index по умолчанию index (0,1,2 ...):

df = pd.merge(df1, df2, how='outer', indicator=True) 
print (df) 
    a b  _merge 
0 abc def  both 
1 ghi jkl  both 
2 mno pqr left_only 
3 stu vwx right_only 

df = df[df._merge != 'both'].drop('_merge', axis=1).reset_index(drop=True) 
print (df) 
    a b 
0 mno pqr 
1 stu vwx 
Смежные вопросы