2024-06-12 23:52:00 发布
网友
df = df1.loc[df1['CUST_ACCT_KEY'] != df2['CUST_ACCT_KEY']]
执行上述命令时,会出现以下错误:
ValueError: Can only compare identically-labeled Series objects
我做错什么了?*
两列的数据类型都是int64。
int64
Pandas几乎所有的操作都使用内部数据对齐,这意味着它使用索引来比较和执行操作。
Pandas
通过使用.values将序列之一转换为numpy数组,可以避免此错误:
.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']
输出:
更改为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
Pandas
几乎所有的操作都使用内部数据对齐,这意味着它使用索引来比较和执行操作。通过使用
.values
将序列之一转换为numpy
数组,可以避免此错误:但是,您正在比较没有索引对齐的行。
MCVE公司:
输出:
更改为numpy数组:
输出:
相关问题 更多 >
编程相关推荐