首页 > 解决方案 > 在给定 X/Y 坐标的情况下确定数据的相反顺序

问题描述

想象一个电连接器。它有别针。每个引脚在空间中都有对应的 X/Y 位置。我试图弄清楚如何在给定 X/Y 坐标的情况下镜像或“翻转”连接器上的每个引脚。注意:我使用的是熊猫版本 23.4粗糙的油漆素描视觉我们可以假设 x、y 和 pin 不是唯一的,但 connector 是唯一的。连接器可以是任意尺寸,如两排 5 个、3 排 6 个等。

x    y    pin   connector
1    1     A       1
2    1     B       1
3    1     C       1
1    2     D       1
2    2     E       1
3    2     F       1  
1    1     A       2
2    1     B       2
3    1     C       2
1    2     D       2
2    2     E       2
3    2     F       2

数据框列“翻转”是我想要得到的解决方案。请注意,将在同一行中的引脚现在以相反的顺序排列。

x    y    pin    flip   connector
1    1     A       C        1
2    1     B       B        1
3    1     C       A        1
1    2     D       F        1
2    2     E       E        1
3    2     F       D        1  
1    1     A       C        2
2    1     B       B        2
3    1     C       A        2
1    2     D       F        2
2    2     E       E        2
3    2     F       D        2

标签: pythonpandas

解决方案


IIUC 尝试使用[::-1]反转元素并groupby使用transform

df['flip'] = df.groupby(['connector','y'])['pin'].transform(lambda x: x[::-1])

输出:

    x  y pin  connector flip
0   1  1   A          1    C
1   2  1   B          1    B
2   3  1   C          1    A
3   1  2   D          1    F
4   2  2   E          1    E
5   3  2   F          1    D
6   1  1   A          2    C
7   2  1   B          2    B
8   3  1   C          2    A
9   1  2   D          2    F
10  2  2   E          2    E
11  3  2   F          2    D

推荐阅读