У меня есть файл Excel, в котором мне нужно следовать определенным условиям и ввести в столбце примечаний, если он удовлетворяет условию. Я получаю необходимые столбцы как DataFrames, и вот как это выглядит:
svc_no i_status caller_id f_status result remarks
11111 WO 11111 WO Not Match Duplicate svc_no
22222 WO 22222 WO Match
11111 WO n/a SP Not Match Duplicate svc_no
Условия будут:
- svc_no дублируется
- Один из дубликатов равно значению с caller_id
- Другой имеет значение ' n / a ' или ' NULL ' в caller_id
- Результат Не совпадает
Я использовал .loc
и запишите это так
df.loc[(df['svc_no'] != 'NULL') & (df['svc_no'] == df['caller_id']) & (df['svc_no'].duplicated()) & (df['i_status'] == 'WO') & (df['f_status'] == 'WO') & (df['result'] == 'Not Match), [remarks]] = 'Duplicate svc_no'
Этот код может быть правильным для строки, где появился первый дубликат, он не применяется к другой строке, где появился другой дубликат.
Вопрос: есть ли способ сравнить две строки с дубликатами и применить необходимые условия, используя .loc
, или есть способ обойти?