gpt4 book ai didi

python - Pandas 系列中用于减法或除法的 sum 或 prod 的替代方法

转载 作者:太空宇宙 更新时间:2023-11-04 10:14:12 26 4
gpt4 key购买 nike

是否有内置函数可以对一系列值进行总减法或除法运算?

例如:

s1 = pd.Series(np.random.randn(5), index=['a', 'b', 'c', 'd', 'e'])
s1
a -0.238762
b -0.669687
c 0.618808
d 1.056264
e -1.472528

result = 0.228405

我想我应该用 subtractdiv 方法创建一个 lambda 函数并应用到该系列,但我不知道如何将这些方法应用于同一系列。

最佳答案

我认为在 pandas 中没有非常直接的方法,但在 NumPy 中有 ufunc.reduce 方法可以做到这一点:

>>> s1
a -0.238762
b -0.669687
c 0.618808
d 1.056264
e -1.472528
Name: s1, dtype: float64

>>> np.subtract.reduce(s1.values)
0.22838100000000017

(注意:由于四舍五入,这与您的预期值略有不同 - 该系列仅打印六位小数。)

对于除法,您可以使用 np.divide.reduce(s1.values)


如果你真的必须在 pandas 中实现它,你可以这样写:

s2 = -s1[::-1]              # multiply values by -1, reverse Series
s2.iloc[-1] = -s2.iloc[-1] # set last value back to original sign
s2.sum() # sum

这再次产生 0.2283810...。由于新系列 s2 的创建和索引,这可能会慢得多。

关于python - Pandas 系列中用于减法或除法的 sum 或 prod 的替代方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36384570/

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