Pandas
выполняет почти все свои операции с внутренним выравниванием данных, то есть использует индексы для сравнения и выполнения операций.
Эту ошибку можно избежать, преобразовав один из рядов в массив numpy
, используя .values
:
df = df1.loc[df1['CUST_ACCT_KEY'] != df2['CUST_ACCT_KEY']].values
Однако вы сравниваете строку с строкой без выравнивания индекса.
MCVE:
df1 = pd.DataFrame(np.arange(1,10), index=np.arange(1,10),columns=['A'])
df2 = pd.DataFrame(np.arange(11,20), index=np.arange(11,20),columns=['B'])
df1['A'] != df2['B']
Выход:
ValueError: Can only compare identically-labeled Series objects
Изменить на массив numy:
df1['A'] != df2['B'].values
Выход:
1 True
2 True
3 True
4 True
5 True
6 True
7 True
8 True
9 True
Name: A, dtype: bool