ValueError:只能比较标记相同的Series对象python

时间:2018-06-27 16:23:40

标签: python pandas

df = df1.loc[df1['CUST_ACCT_KEY'] != df2['CUST_ACCT_KEY']]

执行上述命令时,出现以下错误:

  

ValueError:只能比较标记相同的Series对象

我在做什么错?*

两列的dtypes为int64

1 个答案:

答案 0 :(得分:0)

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

更改为numpy数组:

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