gpt4 book ai didi

python - 如何获得 Pandas 系列的元素逻辑非?

转载 作者:行者123 更新时间:2023-12-04 13:59:47 26 4
gpt4 key购买 nike

我有一只 Pandas Series包含 bool 值的对象。如何获得包含逻辑 NOT 的系列每个值?

例如,考虑一个包含以下内容的系列:

True
True
True
False

我想获得的系列将包含:
False
False
False
True

这看起来应该相当简单,但显然我把我的魔力放错了地方 =(

最佳答案

要反转 bool 系列,use ~s :

In [7]: s = pd.Series([True, True, False, True])

In [8]: ~s
Out[8]:
0 False
1 False
2 True
3 False
dtype: bool

使用 Python2.7、NumPy 1.8.0、Pandas 0.13.1:
In [119]: s = pd.Series([True, True, False, True]*10000)

In [10]: %timeit np.invert(s)
10000 loops, best of 3: 91.8 µs per loop

In [11]: %timeit ~s
10000 loops, best of 3: 73.5 µs per loop

In [12]: %timeit (-s)
10000 loops, best of 3: 73.5 µs per loop

从 Pandas 0.13.0 开始,Series 不再是 numpy.ndarray 的子类;它们现在是 pd.NDFrame 的子类.这可能与为什么 np.invert(s)有关。不再像 ~s 那样快或 -s .

警告: timeit结果可能因许多因素而异,包括硬件、编译器、操作系统、Python、NumPy 和 Pandas 版本。

关于python - 如何获得 Pandas 系列的元素逻辑非?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51847806/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com