值错误:只能比较具有相同标签的系列对象python

2024-06-12 23:52:00 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

ValueError: Can only compare identically-labeled Series objects

我做错什么了?*

两列的数据类型都是int64


Tags: key命令onlydf错误canloccompare
1条回答
网友
1楼 · 发布于 2024-06-12 23:52:00

Pandas几乎所有的操作都使用内部数据对齐,这意味着它使用索引来比较和执行操作。

通过使用.values将序列之一转换为numpy数组,可以避免此错误:

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

相关问题 更多 >