Я пытаюсь использовать al oop для перебора двух списков. К сожалению, второй для l oop не работает: он проверяет только первый элемент в списке, но не с остальными. Не могли бы вы сказать мне, почему?
Спасибо
Списки:
low_cars_engines=['Audi', 'Bentley', 'Bugatti', 'Porsche', 'Skoda']
low_planes_engines=['Pratt & Whitney','Rolls-Royce','GE Aviation']
Я хотел бы добавить еще два столбца (Автомобили и самолеты) к моему исходному набору данных на основе операторы if:
- если объект из списка 'Engine to check' находится в списке low_cars_engines, то это автомобиль, в противном случае его нет;
- если объект из список 'Engine to check' находится в списке low_planes_engines, тогда это плоскость, в противном случае это не так.
import re
df['Cars'] = pd.Series(index = df.index, dtype='object')
df['Planes'] = pd.Series(index = df.index, dtype='object')
for index, row in df.iterrows():
value = row['Engine to check']
for x in low_cars_engines:
if x in value:
print(x)
df.at[index,'Cars'] = 'Yes' # need to keep df.at[index, '_']
break
else:
df.at[index,'Cars'] = 'No' # need to keep df.at[index, '_']
break
for index, row in df.iterrows():
value = row['Engine to check']
for x in low_planes_engines:
if x in value:
df.at[index,'Planes'] = 'Yes'
break
else:
df[index,'Planes'] = 'No'
break
print(df)
Первый для l oop работает нормально, но не второй: я не могу присвоить значение элементу в списке «Механизм для проверки», даже если он в списке low_planes_engines (это дает мне всегда Нет).
Не могли бы вы сказать мне, что не так, и если можно было бы использовать только один для l oop вместо двух? Я бы предпочел сохранить ту же структуру или оставить df.at[index,'_']
. Прямо сейчас второй l oop печатает / проверяет только первый элемент списка low_planes_engines (т.е. Pratt & Whitney) и не go до конца.
Поскольку набор данных похож на:
Audi
CFM International
Rolls-Royce
Bentley
Volkswagen
Toyota
Suzuki
Porsche
и не включает этот элемент, все строки в Planes
установлены в No
.