Я создал python функцию, которая содержит для l oop в сочетании с операторами if для итерации по каждому элементу в массиве, чтобы найти слово «Urban», содержащееся в строке, и возвращает положительный индекс, если найден, в противном случае возвращает -1, если значение не существует в строке. Ниже приведен пример вывода:
abc = np.array(crew_data['Vegetation Area'])
print(abc)
-1
2
-1
10
10
10
После этого l oop приступает к выполнению следующих операторов if:
if abc == -1:
abc = str('Rural')
elif abc != -1:
abc != str('Urban')
return(abc)
То, что здесь происходит, основано на По результатам итерации массива любому результату, возвращающему значение -1, присваивается строковое значение 'Rural', а всему, что не равно -1, присваивается строковое значение 'Urban. Ниже приведен результат при печати:
print(abc)
Rural
Urban
Rural
Urban
Urban
Urban
Как показывает пример, функция при вызове выполняет операторы l oop и if и возвращает требуемый результат, однако, когда эта функция вызывается в другой для l oop результаты меняются, и кажется, что l oop (в вопросе) продолжает повторяться и дает неправильный результат. Первоначально я думал, что это могло бы быть связано с использованием того же итератора i, который используется в последующем для l oop, поэтому я изменил значение итератора на x, и ничего не изменилось.
Обратите внимание, что позже для упомянутого l oop (код не показан) без проблем вызывает ряд различных функций, однако это единственная функция, которая содержит для l oop.
Существуют ли дополнительные элементы управления? которые должны быть интегрированы в функцию, которая позволит ей корректно выполняться в последующем для l oop?
FYI, ниже приведен код функции, указанный в этом вопросе:
def area_type():
abc= np.array(crew_data['Vegetation Area'])
for x in abc:
abc = x.find('Urban')
if abc == -1:
abc = str('Rural')
elif abc != -1:
abc = str('Urban')
return abc
Ниже приведен вывод исходного массива до преобразования значения:
'V-Wellington 906' 'V-Wellington 906' 'V-Urban Narromine 530_1'
'V-Tumbarumba - 78545 - Taradale' 'V-Tumut - Urban Batlow'
'V-Tumut - Urban Batlow' 'V-Tumut - Urban Batlow'
'V-Tumut - Urban Batlow' 'V-Tumut - Urban Batlow'
'V-Tumut - Urban Batlow' 'V-Tumut - Urban Batlow'
'V-Tumbarumba - 78540 +78547 - Laurel Hill'
'V-Tumbarumba - 78540 +78547 - Laurel Hill'
'V-Tumbarumba - 78540 +78547 - Laurel Hill'
'V-Tumbarumba - 78540 +78547 - Laurel Hill'
'V-Tumbarumba - 78540 +78547 - Laurel Hill'
'V-Tumbarumba - 78540 +78547 - Laurel Hill'
'V-Tumbarumba - 78540 +78547 - Laurel Hill'
'V-Tumbarumba - 78540 +78547 - Laurel Hill'
'V-Tumbarumba - 78540 +78547 - Laurel Hill'
'V-Tumbarumba - 78520 + 78521 - Tooma Part 3'
'V-Tumbarumba - 78520 + 78521 - Tooma Part 3'
'V-Tumbarumba - 78540 +78547 - Laurel Hill'
'V-Tumbarumba - 78540 +78547 - Laurel Hill'
'V-Tumbarumba - 78540 +78547 - Laurel Hill'
'V-Tumbarumba - 78540 +78547 - Laurel Hill'
'V-Tumbarumba - 78540 +78547 - Laurel Hill'
'V-Tumbarumba - 78540 +78547 - Laurel Hill'
'V-Tumbarumba - 78540 +78547 - Laurel Hill'
'V-Tumbarumba - 78520 + 78521 - Tooma Part 1'
'V-Tumbarumba - 78520 + 78521 - Tooma Part 1'
'V-Tumbarumba - 78520 + 78521 - Tooma Part 1'
'V-Tumbarumba - 78520 + 78521 - Tooma Part 1'
'V-Tumbarumba - 78520 + 78521 - Tooma Part 1'
'V-Tumbarumba - 78520 + 78521 - Tooma Part 1'
'V-Tumbarumba - 78520 + 78521 - Tooma Part 1'
'V-Tumbarumba - 78520 + 78521 - Tooma Part 1'
'V-Tumbarumba - 78520 + 78521 - Tooma Part 1'
'V-Tumbarumba - 78520 + 78521 - Tooma Part 1'
'V-Tumbarumba - 78520 + 78521 - Tooma Part 1'
'V-Tumbarumba - 78520 + 78521 - Tooma Part 1'
'V-Tumbarumba - 78520 + 78521 - Tooma Part 1'
'V-Tumbarumba - 78520 + 78521 - Tooma Part 1'
'V-Tumbarumba - 78520 + 78521 - Tooma Part 1'
'V-Tumbarumba - 78520 + 78521 - Tooma Part 1'
'V-Tumbarumba - 78520 + 78521 - Tooma Part 1'
'V-Tumbarumba - 78520 + 78521 - Tooma Part 1'
'V-Tumut - 78245+78244+78240 - Back Kunama' 'V-Tumut - Urban Batlow'
'V-Tumut - Urban Batlow' 'V-Tumut - Urban Batlow'
'V-Tumbarumba - 78510 + 78513 - Ournie Feeder B'
'V-Tumbarumba - 78520 + 78521 - Tooma Part 1'
'V-Tumut - 78245+78244+78240 - Back Kunama'
'V-Tumbarumba - 78540 +78547 - Laurel Hill'
'V-Tumbarumba - 78540 +78547 - Laurel Hill'
'V-Tumbarumba - 78540 +78547 - Laurel Hill'
'V-Tumbarumba - 78510 + 78513 - Ournie Feeder B'
'V-Tumbarumba - 78510 + 78513 - Ournie Feeder B'
'V-Tumbarumba - 78510 + 78513 - Ournie Feeder B'
'V-Tumbarumba - 78510 + 78513 - Ournie Feeder B'
'V-Tumbarumba - 78510 - Ournie Feeder C'
'V-Tumbarumba - 78510 + 78513 - Ournie Feeder B'
'V-Tumbarumba - 78510 + 78513 - Ournie Feeder B'
'V-Tumbarumba - 78510 - Ournie Feeder C'
'V-Tumbarumba - 78510 + 78513 - Ournie Feeder B'
'V-Tumbarumba - 78510 + 78513 - Ournie Feeder B'
'V-Tumbarumba - 78510 - Ournie Feeder C'
'V-Tumbarumba - 78510 + 78513 - Ournie Feeder B'
'V-Tumbarumba - 78510 + 78513 - Ournie Feeder B'
'V-Tumbarumba - 78510 + 78513 - Ournie Feeder B'
'V-Tumbarumba - 78510 + 78513 - Ournie Feeder B'
'V-Tumbarumba - 78510 + 78513 - Ournie Feeder B'
'V-Tumut - 78245+78244+78240 - Back Kunama'
'V-Tumut - 78245+78244+78240 - Back Kunama'
'V-Tumbarumba - 78510 + 78513 - Ournie Feeder B'
'V-Tumut - 78245+78244+78240 - Back Kunama'
'V-Tumbarumba - 78510 - Ournie Feeder C'
'V-Tumbarumba - 78510 + 78513 - Ournie Feeder B'
'V-Tumut - 78245+78244+78240 - Back Kunama'
'V-Tumbarumba - 78510 + 78513 - Ournie Feeder B'
'V-Tumbarumba - 78510 + 78513 - Ournie Feeder B'
'V-Tumbarumba - 78510 + 78513 - Ournie Feeder B'
'V-Tumbarumba - 78514 - Jingellic' 'V-Tumbarumba - 78514 - Jingellic'
'V-Tumbarumba - 78510 + 78513 - Ournie Feeder B'
'V-Tumbarumba - 78510 + 78513 - Ournie Feeder B'
'V-Tumbarumba - 78510 + 78513 - Ournie Feeder B'
'V-Tumbarumba - 78514 - Jingellic' 'V-Tumbarumba - 78514 - Jingellic'
'V-Tumbarumba - 78510 + 78513 - Ournie Feeder B'
'V-Tumbarumba - 78510 + 78513 - Ournie Feeder B'
'V-Tumbarumba - 78510 + 78513 - Ournie Feeder B'
'V-Tumbarumba - 78510 + 78513 - Ournie Feeder B'
'V-Tumbarumba - 78514 - Jingellic'
'V-Tumbarumba - 78510 + 78513 - Ournie Feeder B' 'V-Tumut - Urban Batlow'
'V-Tumut - Urban Batlow' 'V-Tumbarumba - 78520 + 78521 - Tooma Part 2'
'V-Tumbarumba - 78540 +78547 - Laurel Hill'
'V-Tumbarumba - 78540 +78547 - Laurel Hill'
'V-Tumbarumba - 78520 + 78521 - Tooma Part 1'
'V-Tumbarumba - 78520 + 78521 - Tooma Part 1'
'V-Tumbarumba - 78520 + 78521 - Tooma Part 1'
'V-Tumbarumba - 78520 + 78521 - Tooma Part 1'
'V-Tumbarumba - 78520 + 78521 - Tooma Part 1'
'V-Tumbarumba - 78520 + 78521 - Tooma Part 1'
'V-Tumbarumba - 78520 + 78521 - Tooma Part 1'
'V-Tumbarumba - 78520 + 78521 - Tooma Part 1'
'V-Tumbarumba - 78520 + 78521 - Tooma Part 1'
'V-Tumbarumba - 78520 + 78521 - Tooma Part 1'
'V-Tumbarumba - 78520 + 78521 - Tooma Part 1'
'V-Tumbarumba - 78520 + 78521 - Tooma Part 1'
'V-Tumbarumba - 78520 + 78521 - Tooma Part 1'
'V-Tumbarumba - 78540 +78547 - Laurel Hill'
'V-Tumbarumba - 78540 +78547 - Laurel Hill'
'V-Tumbarumba - 78540 +78547 - Laurel Hill'
'V-Tumbarumba - 78540 +78547 - Laurel Hill'
'V-Tumbarumba - 78540 +78547 - Laurel Hill'
'V-Tumbarumba - 78540 +78547 - Laurel Hill'
'V-Tumbarumba - 78540 +78547 - Laurel Hill'
'V-Tumbarumba - 78520 + 78521 - Tooma Part 1'
'V-Tumbarumba - 78540 +78547 - Laurel Hill'
'V-Tumbarumba - 78520 + 78521 - Tooma Part 1'
'V-Tumbarumba - 78520 + 78521 - Tooma Part 1'
'V-Tumbarumba - 78520 + 78521 - Tooma Part 1'
'V-Tumut - 78316 - Talbingo' 'V-Tumut - Urban Talbingo'
'V-Tumut - 78316 - Talbingo' 'V-Tumut - 78316 - Talbingo'
'V-Tumut - 78316 - Talbingo' 'V-Tumut - 78316 - Talbingo'
'V-Tumut - 78316 - Talbingo'
'V-Gundagai - 78440+78442+78444 - Tumblong Part 2'
'V-Gundagai - 78440+78442+78444 - Tumblong Part 2'
'V-Gundagai - 78440+78442+78444 - Tumblong Part 2'
'V-Gundagai - 78440+78442+78444 - Tumblong Part 2'
'V-Tumbarumba - 78510+78511+78512 - Ournie Feeder A'
'V-Tumbarumba - 78510+78511+78512 - Ournie Feeder A']
Этот массив извлекается из столбца импортированного CSV-файла, который сохраняется как pandas DataFrame. Функция, представленная в этом посте, должна выполнять итерацию по этому массиву, искать слово urban, возвращать индекс или логическое значение, преобразовывать это значение в Urban или Rural, а затем возвращаться и вызываться в последующем l oop для заполнения диапазон в пустом кадре данных, который затем будет экспортирован как CSV, готовый для импорта в другую базу данных.