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)