【发布时间】:2022-01-23 05:52:39
【问题描述】:
我有一个三列的表,其中两列可以翻转:
row A B Time
001 C1 DQ 300
002 C1 EG 355
003 DQ C1 300
004 DQ EG 400
005 IX Q2 410
006 Q2 IX 410
我想首先识别重复的行,然后随机保留 1 个重复的条目。
对于第一个测试,显然第 001 / 003 行是一对,005 / 006 也是。但是,为了避免偏差,我希望有 50% 的概率保留第 001 行或第 003 行,并且在第二次配对。
我的直觉是逐行循环并创建一个AB行,如下所示,按时间和随机变量排序,然后选择AB lAB。很明显,看看下面的行,我最终会得到 4 个独特的组合,随机保留适当的 A 或 B 条目。
row AB lAB Time rand_val
001 C1DQ null 300 0.00031
003 C1DQ C1DQ 300 0.37647
002 C1EQ C1DQ 355 0.78345
004 DQEG C1EQ 400 0.63145
006 IXQ2 DQEG 410 0.21364
005 IXQ2 IXQ2 410 0.91462
不幸的是,我有一个很长的数据集,并且在循环创建 AB 时提取 A 和 B 的值意味着多次传递和排序。有没有更优化的“熊猫”方法来解决这个问题?
【问题讨论】: