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

标签 python indexing pandas boolean-logic

我一直在一个严重依赖 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 子类了)

我不久前确实尝试过解决这个问题,但它引发了很多问题。一如既往,希望有一份文档说明来澄清

关于python - 为什么 pandas 比较运算符不在索引上对齐?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30284415/

相关文章:

Mysql - 我应该使用 ID 列吗?

python - 该行代码在 Python 3.7 和 pandas 0.24.2 中不运行

python - 如何在Windows中使用pip?

mysql - sphinx搜索字段权重

mysql - Mysql中创建唯一复合索引,其中一个字段可以为空

python - pandas 在 to_latex 时用任意数字替换 NAN

python - 用 pandas 在 excel 中给单元格着色

python - Redshift COPY 操作在 SQLAlchemy 中不起作用

python - Yield Request调用在scrapy的递归方法中产生奇怪的结果

python - 当我们拆分训练和测试时,我们希望将目标变量指定为动态变量