我对 Pandas Series 对象在使用reindex_like
和相关功能时的区别感到困惑。例如,考虑以下 Series 对象:
>>> import numpy
>>> import pandas
>>> series = pandas.Series([1, 2, 3])
>>> x = pandas.Series([True]).reindex_like(series).fillna(True)
>>> y = pandas.Series(True, index=series.index)
>>> x
0 True
1 True
2 True
>>> y
0 True
1 True
2 True
从表面上看,它们的内容x
和y
索引似乎相同。但是,它们必须在某些方面有所不同,因为其中一个在使用时会导致错误,numpy.logical_and()
而另一个不会。
>>> numpy.logical_and(series, y)
0 True
1 True
2 True
>>> numpy.logical_and(series, x)
Traceback (most recent call last):
File "<ipython-input-10-e2050a2015bf>", line 1, in <module>
numpy.logical_and(series, x)
AttributeError: logical_and
numpy.logical()
在这里抱怨什么?我看不出这两个系列之间的区别,x
并且y
. 但是,必须有一些细微的差别。
Pandas 文档说 Series 对象是“大多数 NumPy 函数”的有效参数。显然,在这种情况下,这在某种程度上是正确的。显然,创建机制使x
这个特定的 numpy 函数无法使用。
作为旁注,这两种创建机制中的哪一种reindex_like()
以及该index
论点对于这种情况更有效和惯用?也许还有另一种/更好的方法我也没有考虑过。