gpt4 book ai didi

python - 从数据帧中的第一行中减去每一行

转载 作者:行者123 更新时间:2023-12-01 02:28:16 26 4
gpt4 key购买 nike

我有一个包含三个变量的数据框(称为 df),其头部如下所示。有600行数据。

         X1        X2        X3
0 0.049150 0.270032 0.577858
1 0.602387 0.065492 0.555747
2 0.598355 0.235002 0.482744
3 0.522151 0.253991 0.402630
4 0.402601 0.206630 0.553987

我正在尝试从第一行中减去每一行。也就是说,我正在查找 row1 - row2,然后查找 row1 - row3,依此类推。我刚开始使用 for 循环(以及一般的 Python),并且我当前的尝试还没有取得多大进展:

for i in range(len(df)):
diff[i] = df.iloc[0,:] - df.iloc[i,:]
diff2 = math.sqrt((diff[0])**2 + (diff[1])**2 + (diff[2])**2)
print(diff2)

对于最后三行的上下文,我试图取每行项目之间差异的平方根。所以,

sqrt((row1col1-row2col1)^2 + (row1col2 - row2col2)^2 + (row1col3 - row2col3)^2)

然后我想将第 600 行之前的所有行差异的结果存储在一个新向量中。

如果您想了解更多背景信息,我正在尝试实现“减法聚类”算法的第二步,其公式如下:

formula

其中 ra=1

最佳答案

第一行可以通过 iloc 访问像这样:

row1 = df.iloc[0]

然后我们可以在第 1 行使用 apply 来结束:

df.iloc[1:].apply(lambda x: np.sqrt(sum((row1-x)**2)), axis=1).values

返回:

array([ 0.59025138,  0.55848   ,  0.5046703 ,  0.35988505])

关于python - 从数据帧中的第一行中减去每一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47126706/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com