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

时间:2019-04-11 15:52:05

标签: python python-3.x pandas dataframe difference

嗨,我的数据格式如下:

   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处,计算是通过以下方式完成的:

  

索引7 [C] = ABS(索引0 [A]-索引7 [A])+ ABS(索引0 [B]-索引7 [B])

     

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

1 个答案:

答案 0 :(得分:3)

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