ValueError: может сравнивать только идентифицированные объекты Series в Python - PullRequest
0 голосов
/ 27 июня 2018
df = df1.loc[df1['CUST_ACCT_KEY'] != df2['CUST_ACCT_KEY']]

Когда я выполняю вышеуказанную команду, я получаю следующую ошибку:

ValueError: Может сравнивать только объекты Series с одинаковыми метками

Что я делаю не так? *

Типы столбцов: int64.

1 Ответ

0 голосов
/ 27 июня 2018

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...