Поиск ключей добавленных дополнительных строк после левого объединения двух фреймов данных - PullRequest
0 голосов
/ 15 октября 2019

У меня есть 2 фрейма данных (скажем, фрейм данных A и фрейм данных B), и я объединил их с функцией слияния панд. строк, чем в таблице А.

Я просто хочу узнать, каковы значения "A_Key1" этих дополнительных строк.

Я пробовал следующие вещи:

dup = A.loc[B.duplicated(["B_Key1", "B_Key2"]),:]

dup['B_Key1'].isin(A["A_Key1", "B_Key2"].unique())

Но это не работает, как я ожидал.

1 Ответ

0 голосов
/ 15 октября 2019

Используйте DataFrame.duplicated только для A DataFrame:

A = pd.DataFrame({
        'A':list('abcdef'),
        'A_Key1':[3,3,6,5,5,4],
        'A_Key2':list('aaabbb')
})

B = pd.DataFrame({
        'B':list('qwerty'),
        'B_Key1':[5,3,6,1,3,5],
        'B_Key2':list('aaaaab')
})

merged = A.merge(B, left_on=["A_Key1", "A_Key2"], right_on=["B_Key1", "B_Key2"], how = 'left')
print (merged)
   A  A_Key1 A_Key2    B  B_Key1 B_Key2
0  a       3      a    w     3.0      a
1  a       3      a    t     3.0      a
2  b       3      a    w     3.0      a
3  b       3      a    t     3.0      a
4  c       6      a    e     6.0      a
5  d       5      b    y     5.0      b
6  e       5      b    y     5.0      b
7  f       4      b  NaN     NaN    NaN

dup = merged[merged.duplicated(["B_Key1", "B_Key2"])]
print (dup)
   A  A_Key1 A_Key2  B  B_Key1 B_Key2
1  a       3      a  t     3.0      a
2  b       3      a  w     3.0      a
3  b       3      a  t     3.0      a
6  e       5      b  y     5.0      b

dup1 = merged.loc[merged.duplicated(["A_Key1", "A_Key2"]), 
                 ['A_Key1','A_Key2','B_Key1','B_Key2']]
print (dup1)
   A_Key1 A_Key2  B_Key1 B_Key2
1       3      a     3.0      a
2       3      a     3.0      a
3       3      a     3.0      a
6       5      b     5.0      b
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...