Я пытался сравнить два файла и удалить строки из файла2 на основе сравнения. Я хочу сохранить строку в файле2, если значение существует в обоих файлах в «Категории 2». если значение из файла2 не существует в файле1, удалите строку. Я изучал конкатенацию и удаление недубликатов, но я предполагаю, что есть более логичный подход к этому? Я также не могу найти ничего особенного c для сравнения фреймов данных и удаления строк, которые НЕ являются общими. Я в основном нахожу вещи, которые удаляют дубликаты и т. д. c. приветствуются любые указатели или новое направление решения этой проблемы. спасибо
также, если есть смысл удалить какие-либо заголовки в файле 1, такие как «Все списки» или другие категории, чтобы упростить задачу, я бы тоже не возражал.
df1 = pd.read_excel('file1.xlsx')
df2 = pd.read_excel('file2.xlsx')
#df1_i = df1.set_index(['Category 2'])
#df2_i = df2.set_index(['Category 2'])
output = df2[(df2['Category 2'].isin(df1['Category 2']))]
output
текущий вывод:
Empty DataFrame
Columns: [Title, Manager]
Index: []
файл1
All Lists
Category 1 Category 2 Category 3 Category 4 Category 5 Category 6
List 1
element1 x
element2 x
element3 x
element4 x
element5 x
List 2
card1 x
card2 x
card3 x
card4 x
card5 x
List 3
box1 x
box2 x
box3 x
box4 x
box5 x
файл2
Category 2 Manager quarter1 quarter2 quarter3 quarter4 total
element2 A $ $ $ $ $
notElement B $ $ $ $ $
card3 C $ $ $ $ $
box4 D $ $ $ $ $
element3 E $ $ $ $ $
box1 F $ $ $ $ $
notElement B $ $ $ $ $
notElement C $ $ $ $ $
card7 D $ $ $ $ $
element4 E $ $ $ $ $
желаемый результат:
Category 2 Manager quarter1 quarter2 quarter3 quarter4 total
element2 A $ $ $ $ $
card3 C $ $ $ $ $
box4 D $ $ $ $ $
element3 E $ $ $ $ $
box1 F $ $ $ $ $
card7 D $ $ $ $ $
element4 E $ $ $ $ $