Pandas 从除特定元素外的系列中减去一个数字

Pandas 从除特定元素外的系列中减去一个数字,pandas,series,Pandas,Series,我有一个像这样的熊猫系列 cluster_grtr_6 Out[100]: Clusters Cluster 1 7 Cluster 4 7 Cluster 5 8 Name: quant_bought, dtype: int64 在应用一些条件之后,我得到一个变量a a Out[101]: 3 Cluster 5 Name: Clusters, dtype: object 我想从序列的每个元素中减去6,除了a 因此,最终输出应该如下所示 Clusters Clu

我有一个像这样的熊猫系列

cluster_grtr_6
Out[100]: 
Clusters
Cluster 1    7
Cluster 4    7
Cluster 5    8
Name: quant_bought, dtype: int64
在应用一些条件之后,我得到一个变量
a

a
Out[101]: 
3    Cluster 5
Name: Clusters, dtype: object
我想从序列的每个元素中减去6,除了
a

因此,最终输出应该如下所示

Clusters
Cluster 1    1
Cluster 4    1
Cluster 5    8
对于减法,我可以简单地做每一个元素

(cluster_grtr_6 - 6)

您可以使用布尔掩码。首先在
a

In [64]: s.index.isin(a)
Out[64]: array([False, False,  True], dtype=bool)
然后在数值运算中使用True被视为1,False被视为0这一事实

In [65]: result = s - 6 * ~s.index.isin(a)

In [66]: result
Out[66]:
cluster 1    1
cluster 4    1
cluster 5    8
dtype: int64

您可以使用布尔掩码。首先在
a

In [64]: s.index.isin(a)
Out[64]: array([False, False,  True], dtype=bool)
然后在数值运算中使用True被视为1,False被视为0这一事实

In [65]: result = s - 6 * ~s.index.isin(a)

In [66]: result
Out[66]:
cluster 1    1
cluster 4    1
cluster 5    8
dtype: int64

或者,您可以使用以下内容(如果
a
中只有一个值):


它稍微快一点,但只能与
a

中的一个变量一起使用。或者,您可以使用以下内容(如果
a
中只有一个值):

In [64]: s.index.isin(a)
Out[64]: array([False, False,  True], dtype=bool)
它稍微快一点,但只能与
a
a中的一个变量一起使用

In [64]: s.index.isin(a)
Out[64]: array([False, False,  True], dtype=bool)