为什么 pandas 比较运算符不在索引上对齐?

why do pandas comparison operators not align on index?

我一直在追踪严重依赖 pandas 的复杂应用程序中的一个难以捉摸的错误,最终将其追踪到一个系列排序问题。具有不同排序但兼容的索引的系列不会由比较运算符自动对齐。这与算术运算符的行为不同,据我所知没有记录。修复很简单 - 只需重新索引即可。我的问题是为什么 pandas 中存在这种行为 - 这是一个错误吗?

>>> x = pd.Series({'A':1,'B':2,'C':3}, index=['A','B','C'])
>>> y = pd.Series({'A':1,'B':2,'C':3}, index=['B','C','A'])
>>> x/y
A    1
B    1
C    1
dtype: float64
>>> x==y
A    False
B    False
C    False
dtype: bool
>>> x.eq(y)
A    False
B    False
C    False
dtype: bool
>>> x==y.reindex(x.index)
A    True
B    True
C    True
dtype: bool

在此处查看讨论:https://github.com/pydata/pandas/issues/1134

这本来是一个特性,虽然不再需要支持的原因(Series 已经有一段时间不是 ndarray 的子类了)

前一段时间我确实尝试解决这个问题,但它引发了一大堆问题。一如既往地感谢文档注释以澄清