去除数据中已经存在的 ID 组合
Getting rid of combinations of IDs already present in the data
我有以下数据集
idA idB value
1 5 0.11
2 6 0.25
3 7 0.3
4 8 0.4
. . .
. . .
. . .
. . .
. . .
5 1 0.11
6 2 0.25
7 3 0.3
8 4 0.4
idA 和 idB 是同一数据集的 ID(基本上 idA 和 idB 都来自同一列)。
所以,如果我有 (idA = 1, idB = 5) 它与 (idB = 1, idA = 5) 相同。
我想摆脱多个案例(我的 df 底部的那个),以获得
idA idB value
1 5 0.11
2 6 0.25
3 7 0.3
4 8 0.4
. . .
. . .
. . .
. . .
. . .
知道怎么做吗?
谢谢我提前。
沿行 (axis=1
) 应用 sorted
到组 idA
和 idB
并使用它来查找重复的行。
df["id"] = df[["idA", "idB"]].apply(lambda x: tuple(sorted(x)), axis=1)
df[~df.duplicated("id")]
# idA idB value id
# 0 1 5 0.11 (1, 5)
# 1 2 6 0.25 (2, 6)
# 2 3 7 0.30 (3, 7)
# 3 4 8 0.40 (4, 8)
我有以下数据集
idA idB value
1 5 0.11
2 6 0.25
3 7 0.3
4 8 0.4
. . .
. . .
. . .
. . .
. . .
5 1 0.11
6 2 0.25
7 3 0.3
8 4 0.4
idA 和 idB 是同一数据集的 ID(基本上 idA 和 idB 都来自同一列)。 所以,如果我有 (idA = 1, idB = 5) 它与 (idB = 1, idA = 5) 相同。 我想摆脱多个案例(我的 df 底部的那个),以获得
idA idB value
1 5 0.11
2 6 0.25
3 7 0.3
4 8 0.4
. . .
. . .
. . .
. . .
. . .
知道怎么做吗?
谢谢我提前。
沿行 (axis=1
) 应用 sorted
到组 idA
和 idB
并使用它来查找重复的行。
df["id"] = df[["idA", "idB"]].apply(lambda x: tuple(sorted(x)), axis=1)
df[~df.duplicated("id")]
# idA idB value id
# 0 1 5 0.11 (1, 5)
# 1 2 6 0.25 (2, 6)
# 2 3 7 0.30 (3, 7)
# 3 4 8 0.40 (4, 8)