Я пытаюсь сравнить 2 столбца в одном кадре данных (df1) с 2 столбцами в другом кадре данных (df2).После сравнения я хочу выбрать строки, в которых первые два столбца не совпадают.Ниже вы можете увидеть мои попытки, и вот как выглядят фреймы данных [ 1 ]
import pandas as pd
fd1= 'Q37.xlsx'
fd2= 'Q43.xlsx'
df1 = pd.read_excel( fd1, sheetname='prio 1')
df2 = pd.read_excel( fd2, sheetname='prio 1')
closed_items= {} #items in fd1 but not in fd2
new_items={} #items in fd2 but not in fd1
Чтобы получить закрытые элементы, я попробовал следующие 3 вещи
closed_items.where(df1[df1['Code'].values!=df2[df2['Code'].values and
df1['Owner'].values != key in df1['Owner'].values)
и получил
ValueError: Can only compare identically-labeled Series objects
Я также пытался
Closed_items = df2.loc[(df2['Code'] != df1['Code']) and
df2.loc[(df2['Owner'] != df1['Owner'])]
И, наконец, я пытался
for key in df1['Code'].values:
if key in df1['Code'].values != key in df1['Code'].values or key in
df1['Owner'].values != key in df1['Owner'].values:
closed_items.append()
else:
pass
, который дал этот синтаксис
The truth value of an array with more than one element is ambiguous.
Use a.any() or a.all()
...
AFP= pd.ExcelWriter("AFP.xlsx", engine='xlsxwriter')
closed_items.to_excel(AFP, sheet_name='Closed', index=False)