python - 在给定 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
解决方案
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
推荐阅读
- r - 如何将数据框转换为R中的列表
- python - 无法将 xlsx 文件写入另一个文件夹
- python - ResNet50+LSTM 视频二元分类 Keras
- flutter - 如何使用 ClipPath 来获得这种类型的设计布局?
- wordpress - Wordpress CF7 无法重定向邮件发送操作
- objective-c - 将 AttributedString 保存并检索到 SQLite3
- flutter - Flutter 闪屏不换页
- vue.js - vue-webcam 选择的分辨率
- flutter - 限制用户仅使用网络提供的时间
- c# - 仅编辑时 DataGridView 不刷新。它在删除或添加行时刷新,但在编辑时不刷新