Использование циклов в кадре данных со строкой - PullRequest
0 голосов
/ 07 августа 2020

Я управляю фреймом данных с данными велосипеда (номер парковки, улица, широта и долгота, якоря и т. Д. c). Моя цель - создать функцию, которая, с одной стороны, через входные данные запрашивает у пользователя на экране номер парковки, где она расположена, затем я хочу убедиться, что этот номер находится в столбце idunplug_station фрейма данных, который Я справляюсь. После проверки следующим уровнем будет сохранение в двух переменных, долготе и широте номера парковки. из-за отступа или чего-то подобного, точно так же, когда я создаю else, у меня также возникают проблемы, поскольку он его печатает.

result_destino = ""
origen = int(input("Indica el nº de la estación donde te encuentras: "))
destino = int(input("Indica el nº de la estación a donde vas: "))
for i, row in stations_2019.iterrows(): #tomo como referencia el dataframe de estaciones 2019 para obtener latitud y longitud
    if i == origen:
      result_origen = row[10], row[11]
    else:
      print("No existe esa estación")

for j, row in stations_2019.iterrows():   
      if j == destino:
        result_destino = row[10], row[11]
      else:
      print("No existe esa estación")

print(result_origen)
print(result_destino)

1 Ответ

0 голосов
/ 07 августа 2020

Ваши циклы должны выглядеть так:

for i, row in stations_2019.iterrows(): 
    if i == origen:
        result_origen = row[10], row[11]
        break
else:
    print("No existe esa estación")  # means: "that station doesn't exist"

else идет с for и выполняется, если l oop завершается, не встречая break. Это значение отличается от значения if, хотя ключевое слово то же самое.

Возможно, вы также захотите сделать что-то еще в блоке else, чтобы предотвратить продолжение выполнения, или вы собираетесь нажать NameError позже при попытке использовать result_origen. Например, вы можете вызвать исключение или return, если оно находится внутри функции. Или, если нет, то по крайней мере убедитесь, что result_origen установлено на что-то (например, None или '').

...