Панды: Рассчитать разницу между всеми строками и конкретной строкой в ​​кадре данных - PullRequest
1 голос
/ 11 апреля 2019

Привет У меня есть данные в следующем формате:

   A  B
0  2  1
1  2  1
2  2  4
3  2  4
4  3  5
5  3  5
6  3  6
7  3  6

Я хочу вычислить сумму абсолютных разностей между индексом 0 и всеми другими индексами.Это означает, что я буду вычислять разницу по каждому столбцу.Возьмите абсолютное значение и сложите эти значения.Я хочу создать столбец «C», который будет выглядеть следующим образом:

    A   B   C
0   2   1   0
1   2   1   0
2   2   4   3
3   2   4   3
4   3   5   5
5   3   5   5
6   3   6   6
7   3   6   6

Например, для индекса 7 вычисление выполняется следующим образом:

Index 7[C] = ABS (индекс 0 [A] - индекс 7 [A]) + ABS (индекс 0 [B] - индекс 7 [B])

6 = ABS (2-3) + ABS (1-6)

1 Ответ

3 голосов
/ 11 апреля 2019

subtract с .iloc, затем sum абсолютные значения по строкам:

df['C'] = df.sub(df.iloc[0]).abs().sum(1)

   A  B  C
0  2  1  0
1  2  1  0
2  2  4  3
3  2  4  3
4  3  5  5
5  3  5  5
6  3  6  6
7  3  6  6
...