Новый столбец фрейма данных на основе сравнения с другим фреймом данных.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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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