如何计算多列的逐行比较?

How to compute row-wise comparison of multiple columns?

我得到了一个table,里面有很多点信息,我需要在对之前的四个字段进行逐行比较后填写位置字段。

如果 X 坐标和 Y 坐标以及 ID_01 都相等,则需要比较 ID_02 才能将“结束”分配到较低 [=20= 的位置字段中] 值,因此值为 35 的行和“开始”进入行等于 36 的行,因为它更大。

X-Coordinate Y-Coordinate ID_01 ID_02 Position
45000 554000 15 35 ?
45000 554000 15 36 ?
94475 59530 1 1
94491 60948 1 1
94491 60948 1 2
94151 64480 1 2
94151 64480 1 3
95408 68694 1 3
95408 68694 1 4
94703 69961 1 4
94703 69961 1 5
93719 70786 1 5
93719 70786 1 6
95310 72044 1 6
95310 72044 1 7
99525 82049 1 7
99525 82049 1 8
101600 84306 1 8
102744 85032 1 9
101600 84306 1 9
102744 85032 1 10
104155 86535 1 10
104575 86430 1 11

例如,您将如何处理 pandas 数据框?

您可以使用布尔掩码。首先按 ID_02 对您的值进行排序,然后检查重复值。行设置为 True 的位置有 End 位置,另一个 Start 位置:

m = df.sort_values('ID_02').duplicated(['X-Coordinate', 'Y-Coordinate', 'ID_01'])

df['Position'] = np.where(m, 'End', 'Start')
print(df)

# Output
   X-Coordinate  Y-Coordinate  ID_01  ID_02 Position
0         45000        554000     15     35    Start
1         45000        554000     15     36      End