Я новичок в питоне и пандах. Здесь у меня есть следующий фрейм данных, который имеет два списка.
Test Test1
[1,1,1] [1,2,2]
[1,2,2] [1,0,1]
[1,0,0] [1,1,1]
[2,2,2] [0,0,2]
В этом фрейме данных я пытаюсь сравнить два списка. Существуют некоторые условия, которые только должны возвращать true. Итак,
Здесь, если любая из сторон имеет 2 0 и 1 положительное значение, а другая сторона имеет одинаковые положительные значения, она должна вернуть True, в противном случае False.
Так В этом случае
[1,0,0] [1,1,1]
[2,2,2] [0,0,2]
Здесь для них обоих это вернет true.
Теперь, что я попробовал, так это
def check_two_zeros_onEither_side(tup1,tup2):
count_on_previous = tup1.count(0)
count_on_next = tup1.count(0)
rem1 = [x for x in tup1 if x != 0]
rem2 = [x for x in tup2 if x != 0]
if count_on_previous == 2:
if all([rem1[0] == rem2[0], rem1[0] == rem2[1]]):
Но здесь я не могу обработать некоторые случаи исключений, такие как,Индекс вне диапазона, как это .. Кто-нибудь может помочь мне с этим? Благодарю. А также как мне этого добиться?
def check_two_zeros_onEither_side(tup1,tup2,ins):
count_on_previous = tup1.count(0)
count_on_next = tup2.count(0)
print(count_on_previous,count_on_next)
rem1 = [x for x in tup1 if x != 0]
rem2 = [x for x in tup2 if x != 0]
print(rem1,rem2,len(tup1),len(tup2))
if count_on_previous == 2 and len(rem1) == 1 and len(rem2) == 3:
if all( [rem1[0] == rem2[0], rem1[0] == rem2[1], rem1[0] == rem2[2]]):
print("GOin insde one",ins)
return True
elif count_on_next == 2 and len(rem2) == 1 and len(rem1) == 3:
if all([rem2[0] == rem1[0], rem2[0] == rem1[1], rem2[0] == rem1[2]]):
print("GOin insde two",ins)
return True
else:
return False
else:
return False
Это то, что я пытался .. Работает, но есть ли другой способ сделать это?