Новый столбец фрейма данных на основе сравнения с другим фреймом данных.Python

Программы на Python
Anonymous
Новый столбец фрейма данных на основе сравнения с другим фреймом данных.

Сообщение Anonymous »

Предположим, у меня есть следующие два фрейма данных, которые содержат некоторую общую информацию:

Код: Выделить всё

import pandas as pd

df_1 = pd.DataFrame({
"first_name": ["Alice", "Bob", "Charlie", "Alice"],
"age": [15, 16, 15, 17],
"last_name": ["Smith", "Smith", "Jones", "Doe"]})
df_2 = pd.DataFrame({
"first_name": ["Alice", "Alice", "Bob"],
"last_name": ["Smith", "Doe", "Smith"],
"dog": ["Bingo", "Fido", "Rover"]})
Теперь я хотел бы добавить столбец «has_dog» в df_1 с логическими значениями.
В принципе, я хочу просмотреть строки df_1 и сравнить их с df_2. Если у человека из df_1 есть совпадающие значения «first_name» и «last_name» в df_2, то «has_dog» должно иметь значение True для записи с этим именем и фамилией в df_1 и False в противном случае.

Обратите внимание, что в наборе данных есть два человека с одинаковым именем и другая пара людей с одинаковой фамилией, поэтому для определения совпадающих записей между кадрами данных необходимо использовать несколько столбцы.
Есть ли эффективный способ сделать это, не требующий перебора строк фрейма данных? (Фактические фреймы данных, над которыми я пытаюсь выполнить такого рода операции, на несколько порядков больше, поэтому оптимизация производительности важна.)

Подробнее здесь: https://stackoverflow.com/questions/798 ... -dataframe

Вернуться в «Python»