Я не могу создать новый столбец. Я работаю над программой поиска школ, которая рассчитывает ближайшие школы на основе широты и долготы между всеми школами в моей стране и местоположения пользователя. Я использовал библиотеку Geopy для географических расчетов и pyproj для преобразования между восточным/северным направлением и широтой/долготой. Библиотека pandas используется для создания столбцов и строк и доступа к ним.
Вот проблема: переменная Distance, которая должна содержать расстояния в милях, была определена внутри функции как пустой список. Однако терминал сообщает, что он не определен, даже когда я использую ключевое слово global. Мне посоветовали использовать отладчик, но он показал только то, что Distance обновляется внутри функции, изменения не сохраняются вне ее.
Я также пробовал определить Distance как пустой список вне функции, но когда он изменяется внутри функции, он все равно остается пустым снаружи.
import geopy # used to get location
from geopy.geocoders import Nominatim
from geopy import distance
import pandas as pd
from pyproj import Transformer
geolocator = Nominatim(user_agent="Everywhere") # name of app
user_input = input("Enter number and name of street/road ")
location = geolocator.geocode(user_input)
your_location = location.latitude,location.longitude #expects a tuple being printed
df = pd.read_csv('longitude_and_latitude.csv', encoding= 'latin1') # encoding makes file readable
t = Transformer.from_crs(crs_from="27700",crs_to="4326", always_xy=True) # instance of transformer class
df['longitude'], df['latitude'] = t.transform((df['Easting'].values), (df['Northing'].values)) # new
def distance_apart(df,your_location):
school_location = []
global Distance
Distance = [ ]
for lat,lon in zip(df['latitude'],df['longitude']): # go through two columns at once
school_location.append([lat,lon])
for schools in school_location:
distance_apart = (distance.distance(your_location ,schools)).miles
Distance.append(distance_apart)
print(Distance)
if __name__ == '__main__':
distance_apart(df,your_location)
Подробнее здесь: https://stackoverflow.com/questions/798 ... -undefined
Глобальная переменная не определена ⇐ Python
Программы на Python
1762878503
Anonymous
Я не могу создать новый столбец. Я работаю над программой поиска школ, которая рассчитывает ближайшие школы на основе широты и долготы между всеми школами в моей стране и местоположения пользователя. Я использовал библиотеку [b]Geopy[/b] для географических расчетов и [b]pyproj[/b] для преобразования между восточным/северным направлением и широтой/долготой. Библиотека [b]pandas[/b] используется для создания столбцов и строк и доступа к ним.
Вот проблема: переменная [b]Distance[/b], которая должна содержать расстояния в милях, была определена внутри функции как пустой список. Однако терминал сообщает, что он не определен, даже когда я использую ключевое слово [b]global[/b]. Мне посоветовали использовать отладчик, но он показал только то, что [b]Distance[/b] обновляется внутри функции, изменения не сохраняются вне ее.
Я также пробовал определить [b]Distance[/b] как пустой список вне функции, но когда он изменяется внутри функции, он все равно остается пустым снаружи.
import geopy # used to get location
from geopy.geocoders import Nominatim
from geopy import distance
import pandas as pd
from pyproj import Transformer
geolocator = Nominatim(user_agent="Everywhere") # name of app
user_input = input("Enter number and name of street/road ")
location = geolocator.geocode(user_input)
your_location = location.latitude,location.longitude #expects a tuple being printed
df = pd.read_csv('longitude_and_latitude.csv', encoding= 'latin1') # encoding makes file readable
t = Transformer.from_crs(crs_from="27700",crs_to="4326", always_xy=True) # instance of transformer class
df['longitude'], df['latitude'] = t.transform((df['Easting'].values), (df['Northing'].values)) # new
def distance_apart(df,your_location):
school_location = []
global Distance
Distance = [ ]
for lat,lon in zip(df['latitude'],df['longitude']): # go through two columns at once
school_location.append([lat,lon])
for schools in school_location:
distance_apart = (distance.distance(your_location ,schools)).miles
Distance.append(distance_apart)
print(Distance)
if __name__ == '__main__':
distance_apart(df,your_location)
Подробнее здесь: [url]https://stackoverflow.com/questions/79816881/global-variable-is-undefined[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия