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
您好,我有以下格式的数据:
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