Объединить два 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 если имена столбцов не совпадают