У меня есть два гигантских фрейма данных, один имеет 38 тыс. Строк, а другой 42 тыс. Я пытаюсь собрать код, который сравнивает эти два df и изолирует уникальные строки, которые не выходят в другом. Я пробовал вложенные циклы, но объем данных слишком велик, и на его завершение уходит вечность. Я ищу более простой и эффективный способ сделать эту работу. Вот ситуация: Df1 имеет следующие важные столбцы: Business_unit, operating_unit, Process_num, Res_type. Df2 имеет похожие столбцы, но названы по-разному. Например, Business_unit теперь является Unit. Operating_unit теперь является Oper Unit. Кроме того, тип данных для этих столбцов в разных таблицах различен. Например, Business Unit - это 01 (str) в одной таблице, но 1 (int) в другой. Поэтому, если бы я использовал concat, а затем удалил дубликаты, мне пришлось бы сделать две таблицы в одном формате. Как мне это сделать? В настоящее время я использую следующий вложенный цикл, но он может обрабатывать только около 1000 строк. Все, что находится за этим, будет длиться вечно.
match_count=0
for index, row_a in SQL_download.head(n=1000).iterrows():
for index, row_b in web_pull.head(n=1000).iterrows():
if int(row_a['Process_Number'])==row_b['Process'] and int(row_a['Resource_Type'])==row_b['Res Type'] and row_a['Amount']==row_b['Sum Amount'] \
and int(row_a['BUSINESS_UNIT'])==row_b['Unit'] and int(row_a['OPERATING_UNIT'])==row_b['Oper Unit'] and int(row_a['ACCOUNT'])==row_b['Account']:
findmatch=True
match_count=match_count+1
break