Pandas векторизация с использованием всей совокупной суммы всех предыдущих строк и всех последующих строк - PullRequest
0 голосов
/ 18 апреля 2020

Я пытаюсь преобразовать таблицу 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'])

Я знаю, что неправильно индексирую часть фрейма данных. Есть ли способ индексировать от начала столбца до строки выше текущей позиции?

1 Ответ

0 голосов
/ 18 апреля 2020

Ваш вопрос может использовать некоторые пояснения, но, похоже, вы хотите исключить текущую строку из расчета 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...