首页 > 解决方案 > 使用所有先前行和所有后续行的所有累积和的 Pandas 矢量化

问题描述

我试图将 excel 表转换为 Python,其中一个函数的一部分是 (SUMSQ(K$8:K36)+SUMSQ(K38:K$39)))

这是所有先前行的平方和加上所有后续行的平方和,我最好的尝试是:

def SUMSQ(x):
     return ((sum([i**2 for i in x]))-(sum(x)**2)/len(x))

SUMSQ(df1['K']) + SUMSQ(df1.iloc[-1::]['K'])

我知道我没有正确索引数据框的一部分。有没有办法从列的开头索引到当前位置上方的行?

标签: pandasdataframeindexing

解决方案


您的问题可能需要一些澄清,但您似乎想从 SUMSQ 计算中排除当前行。如果是这样,那么以下应该工作。

df = pd.DataFrame({'k': range(1, 11)})  
for idx in range(len(df)):
    print(SUMSQ(df.loc[df.index != idx, 'k']))

输出是

60.0
68.88888888888891
75.55555555555554
80.0
82.22222222222223
82.22222222222223
80.0
75.55555555555554
68.88888888888889
60.0

推荐阅读