Вы можете использовать с le
, который проверяет для каждого столбца, равен ли он или меньше A
, а затем B
:
cols = ['A', 'B']
compare = ['C', 'D', 'E']
for col in cols:
print(col)
df[compare].le(df[col], axis=0).astype(int)
output
A
C D E
0 1 1 1
1 1 1 0
2 0 1 1
B
C D E
0 1 1 1
1 0 1 0
2 0 0 1
Было бы более элегантно сделать подсказку с именами столбцов в качестве ключа:
cols = ['A', 'B']
compare = ['C', 'D', 'E']
dct = {col: df[compare].le(df[col], axis=0).astype(int) for col in cols}
print(dct['A'], '\n')
print(dct['B'])
output
C D E
0 1 1 1
1 1 1 0
2 0 1 1
C D E
0 1 1 1
1 0 1 0
2 0 0 1