Я новичок в stackoverflow, а также Python и Pandas, поэтому, пожалуйста, прости за проблемы с форматированием в этом вопросе. Я благодарен за все дружеские комментарии, так как я хотел бы изучить и использовать возможности сравнения данных.
У меня есть два файла .xlsx, которые я преобразую в кадры данных df1 и d2, используя python и pandas.
Допустим, что оба выглядят так:
import pandas as pd
def main():
data1 = {"Col1":["Name1", "Name2", "Name3", "Name4", "Name5"], "Col2":["Street1", "Street2", "Street3", "Street4", "Street5"], "Col3":["Phone1", "Phone2", "Phone3", "Phone4", "Phone5"],}
data2 = {"Col1":["Name1", "Name3", "New", "Name5", "New2", "Name6"], "Col2":["Street1", "Street3", "New", "Street5", "New2", "Street6"], "Col3":["Phone1", "Phone3", "New", "Phone5", "New2", "Street6"],}
df1 = pd.DataFrame(data1)
df2 = pd.DataFrame(data2)
print(df1)
print(df2)
Оба имеют одинаковую структуру , но оба содержат также две пустые строки после строки, содержащей заголовок ( не показано в примере кода).
Сначала эти строки и заголовок необходимо игнорировать по умолчанию (начиная с строки = 4). Затем мне нужно сравнить df1 и df2, чтобы найти строки, которые НЕ находятся в df2 по индексу типа «Col1» (здесь 2-я и 4-я строки из d1).
Они должны быть напечатаны с комментарием, например:
"df2.Name2", "df2.Name4": ушел "или аналогичным, сохраняются в файл .xlsx и удаляются для создания новый фрейм данных df3
После этого мне нужно найти новые записи в df2, которых нет в df3, и извлечь эти новые строки в другой файл .xlsx.
Я также хотел бы создать четвертый фрейм данных df4 с данными из df3 плюс пустые строки, в которых были найдены новые записи в df2, которые выглядят следующим образом:
data4 = {"Col1":["Name1", "Name3", " ", "Name5", " ", "Name6"], "Col2":["Street1", "Street3", " ", "Street5", " ", "Street6"], "Col3":["Phone1", "Phone3", " ", "Phone5", " ", "Name6"]}
df4 = pd.DataFrame(data4)
print(df4)
Теперь аналогичные данные df2 и df4 снова находятся в тех же строках и могут быть сравнены на следующем шаге. чтобы найти изменения в некоторых столбцах (не показано в примере).
Я пытался создать некоторые коды, используя функции concentate или merge, но так как удаленные и новые строки изменяют порядок строк, эти «одинаковые» данные больше не выровнены, и результат слишком высок, поэтому описанная подготовка данных - моя главная проблема.
Заранее большое спасибо за вашу помощь.