在两个不同层次上寻找最近邻

2024-04-27 10:31:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个数据帧,它包含两个级别的信息:g和c。我想计算第三列缺少的值

c1 - g1 - null;
c2 - g2 - -120;
c1 - g3 - -90;
c1 - g4 - -76;

g1 neighbours ---> g2, g3

在本例中,我想在第一行第三列中输入缺失的值。g1与g2和g3相邻,但只有g2与c1相连。因此,在这种情况下,第一行的缺失值将为-90

c1 - g1 - null;
c1 - g2 - -120;
c2 - g3 - -90;
c1 - g4 - -76;

g1 neighbours ---> g2, g4

在这种情况下,g2和g4都是g1的邻居,并且都与c1相连,那么缺少的值应该是98,因为我取与c1相连的邻居(-120-76)/2)的平均值。如何使用Pyspark在Python中以最有效的方式实现这一点