#python #pandas #dataframe
#python #pandas #фрейм данных
Вопрос:
У меня есть фреймы данных
df1
172
72A
12(1)
192
182
df2
172
72A
12(2)
122
88
Я хочу сравнить оба фрейма данных и хочу найти строки в df1, которые не найдены в df2,
тогда прогнозируемые строки должны быть записаны в новый столбец, нет необходимости учитывать значение внутри скобки.
expected result
122
88
Ответ №1:
Используйте .isin
; однако скобки добавляют немного логики, поэтому вы можете split
использовать скобки и take .str[0]
, чтобы вернуть первую его часть. Имена столбцов буквально df1
и df2
, чтобы избежать путаницы. Переключите их на любые ваши фактические заголовки:
df2[~df2['df2'].str.split('(').str[0].isin(df1['df1'].str.split('(').str[0])]
df2
3 122
4 88
~
возвращает обратные строки вывода isin
, которые были бы возвращены без использования ~
.