У меня есть пандас с несколькими столбцами. 2 из этих столбцов должны быть одинаковыми, но в отдельных строках, а третий столбец должен быть одинаковым в обеих строках.
Например, для заданного кадра данных df [A, B, C] найдите row_x и row_y, такие что:
(df.iloc[x, A] == df.iloc[y, B]) and (df.iloc[x, B] == df.iloc[y, A]) and (df.iloc[x, C] == df.iloc[y, C])
Есть ли лучший способ, чем перебирать фрейм для получения строк со столбцами с перестановкой?
A = [30,31]+list(range(2,8,1))+[38,39]
B = range(10,0,-1)
C = [True, False, True, False, False, False, True, False, True, False]
df = pd.DataFrame({'A': A, 'B': B, 'C': C})
Out[]: df
A B C
0 30 10 True
1 31 9 False
2 2 8 True
3 3 7 False
4 4 6 False
5 5 5 False
6 6 4 True
7 7 3 False
8 38 2 True
9 39 1 False
Required output:
A B C
3 3 7 False
5 5 5 False
7 7 3 False
Только строки 3, 5 и 7удовлетворить вышеуказанные условия. Далее я удалю строку 5, так как меня не интересуют строки со столбцом A = столбец B. Обратите внимание, что строки 4 и 6 также имели поменяемые значения в столбцах A и B, но другое значение в столбце C.