df1 = pd.DataFrame({"T1":[1, 7, 1, 6],
"T2": [7, 8, 9, 2],
"T3": [8, 6, 6, 6],
"T4": [3, 3, 3, 8]
"T5": [9, 1, 2, 7]
}
)
print(df1)
T1 T2 T3 T4 T5
0 1 7 8 3 9
1 7 8 6 3 1
2 1 9 6 3 2
3 6 2 6 8 7
Cond1={ 1,8,3 }
Cond2 ={ 7,8,6 }
T1 T2 T3 T4 T5 Cond1 Cond2
0 1 7 8 3 9 T F
1 7 8 6 3 1 T T
2 1 9 6 3 2 F F
3 6 2 6 8 7 F T
我正在查找任何包含数字[1,8,3]的行,这些数字将是行"0"one_answers"1"。我想将我正在搜索的数字更改为[7,8,6],这将是行"1"one_answers"3"。然后创建另一列,声明条件1和条件2等为真或假。
假设您正在寻找不同的数字,则可以使用集合运算:
target = {1,8,3}
df1.index[[target.issubset(s) for s in df1.agg(set, axis=1)]]
输出:Int64Index([0, 1], dtype='int64')
如果你想要行:
target = {1,8,3}
df1[[target.issubset(s) for s in df1.agg(set, axis=1)]]
输出:
T1 T2 T3 T4 T5
0 1 7 8 3 9
1 7 8 6 3 1