Возможно, есть лучший способ, но он может сработать для вас:
import pandas
dt = pandas.DataFrame([["Adam","Hello, I am Adam"], ["Viola", "How are you"]], columns=["name", "message"])
data = pandas.DataFrame([["Adam","Hello, I am Adam"], ["Viola", "How are ya"]], columns=["name", "message"])
print(dt)
print(data)
data.columns = ["name", "message_data"]
merged = dt.merge(data, on=["name"])
merged[merged.message.str.len() != merged.message_data.str.len()]
Сначала необходимо переименовать столбец ["message"]
, чтобы он не конфликтовал при слиянии. Затем вы объединяете оба фрейма данных, сохраняя только имена, которые существуют в обоих фреймах. Наконец, вы сравниваете длины строк в ["message"]
с длинами строк в ["message_data"]
и используете их для извлечения тех строк объединенной таблицы, которые отличаются.
Если вам конкретно нужно только сообщение, вы можете сделать:
merged.loc[merged.message.str.len() != merged.message_data.str.len(), "message"]
Печать результатов построчно должна быть простой.