У меня есть 2 кадра данных, как это:
df1
sales day ...
index
1001 567 321
1002 600 1530
1005 789 998
1008 825 775
1002 300 1120
df2
sales day ...
index
1001 567 321
1002 600 1530
1005 789 998
1014 620 1000
1008 825 775
1009 589 1100
1002 300 1120
1005 770 400
1008 820 1600
, и я хочу сохранить только строки в df2 в качестве индекса и днязначения точно такие же, как df1
, поэтому результат должен быть:
df2
sales day ...
index
1001 567 321
1002 600 1530
1005 789 998
1008 825 775
1002 300 1120
Я не могу использовать функцию isin, как показано ниже, потому что в df2 есть строки, которые имеюттот же индекс, но другое значение дня.Это уникальное сочетание индекса и дня.
df2 = df2[df2.index.isin(df1.index)]
По сути, я хочу сделать в SQL
select *
from table1 t1,
table2 t2,
where t1.id = t2.id
and t1.day = t2.day;