Pandas:计算数据框中所有行与特定行之间的差异

Pandas: Calculate the difference between all rows and a specific row in the dataframe

您好,我有以下格式的数据:

   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(Index 0[A]- Index 7[A]) + ABS(Index 0[B] - Index 7[B])

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

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