Объединить два DataFrame по столбцу (аналог "INNER JOIN" в SQL)

Есть два DataFrame:

        art     
0  00000169    
1  00000225    
2  00000227    
3  00000300    

И второй:

        art     set      pr
0  00000169     A        16.30
1  00000210     B        35.10
2  00000225     C        11.40
3  00000227     B        53.30

Нужно получить DataFrame из содержимого строк второго DataFrame по списку первого:

          art     set      pr
0  00000169     A        16.30
1  00000225     C        11.40
2  00000227     B        53.30

Ответы (2 шт):

Автор решения: CrazyElf

По простому как-то так, если правильно помню:

df2.loc[df2.art.isin(df1.art)]

Ещё можно использовать merge и join практически как в SQL.

→ Ссылка
Автор решения: MaxU

Воспользуйтесь методом DataFrame.merge() - для объединения двух таблиц по столбцам с одинаковыми именами:

res = df2.merge(df1)

результат:

In [7]: res
Out[7]:
        art set    pr
0  00000169   A  16.3
1  00000225   C  11.4
2  00000227   B  53.3

PS можно воспользоваться параметрами left_on и right_on если имена столбцов не совпадают

→ Ссылка