У меня есть два кадра данных:
df1
Company Symbol ID Date Value
0 AAA Inc A 123 2019-12-31 10
1 AAA Inc A 123 2020-03-30 11
2 BBB Inc B 456 2019-03-31 12
3 FFF Inc F 653 2019-06-31 22
4 ZZZ Inc Z 999 2019-03-30 13
df2
Company Symbol ID Date Price
0 AAA Inc A 123 2019-12-31 10
1 AAA Inc A 123 2019-09-30 20
2 AAA Inc A 123 2019-06-31 30
3 AAA Inc A 123 2019-03-30 40
4 BBB Inc B 456 2019-12-31 50
5 BBB Inc B 456 2019-09-30 50
6 BBB Inc B 456 2019-06-31 90
7 BBB Inc B 456 2019-03-31 10
8 CCC Inc C 789 2019-12-31 79
9 CCC Inc C 789 2019-09-31 43
И я хочу создать третий кадр данных, который будет все ['Symbol', 'ID', 'Date']
строк, которые находятся в df1
, но не в df2
. Таким образом, результат будет выглядеть следующим образом:
Company Symbol ID Date
0 AAA Inc A 123 2020-03-30
1 FFF Inc F 653 2019-06-31
2 ZZZ Inc Z 999 2019-03-30
Я знаю, что могу сделать что-то вроде df3 = df1[~df1['Symbol'].isin(df2['Symbol'])]
, но после некоторых исследований не похоже, что есть хороший способ использовать isin
с несколькими столбцы.
Я также проверил похожие вопросы , но не нашел ничего, касающегося только указанных c столбцов.
Я также хотел бы избежать объединение двух кадров данных, если это возможно.
Так как бы мне этого добиться?