Создание пустого массива из цикла - PullRequest
0 голосов
/ 26 сентября 2018

Я пытаюсь найти способ печати минимального значения из цикла ниже.Вывод не является ни списком, ни пустым массивом (см. Вывод ниже)Также см. Мой набор данных, df, прикрепленный ниже.

Код

from geopy.geocoders import Nominatim

df = pd.read_csv("dummy dataset.csv")

cities=['London','Edinburgh','Manchester']
geolocator = Nominatim(user_agent="my-application",timeout=None)
for city in cities:
    location = geolocator.geocode(city)

    df['GTC'] = df['height']*location.latitude + df['width']*location.longitude
    print(city,sum(df['GTC']))

Результат

London  44060.839699659
Edinburgh   44707.029210128
Manchester  43565.213231322

У меня естьпробовал код, такой как: print("The smallest GTC is: ", min(sum(df['GTC'])))

и пытался создать массив с: a = np.asarray(sum(df['GTC']))

Но ни один из них не решил проблему.Любая помощь приветствуется

enter image description here

1 Ответ

0 голосов
/ 26 сентября 2018

Несложное решение состоит в следующем:

import numpy as np
import pandas as pd
from geopy.geocoders import Nominatim

df = pd.read_csv("dummy dataset.csv")
cities=['London','Edinburgh','Manchester']
geolocator = Nominatim(user_agent="my-application",timeout=None)
mingtc = np.inf
mincity = 'unknown'
for city in cities:
    location = geolocator.geocode(city)
    gtc = sum(height*location.latitude + width*location.longitude)
    if gtc < mingtc:
        mingtc = gtc
        mincity = city
print(mincity, mingtc)

Возможно, вы могли бы сделать что-то лучше, используя функциональность Pandas, но неясно, каков реальный формат вашего фрейма данных или какое местоположение. Широта и местоположение..longitude, высота и ширина выглядят как (они плавающие, массивы, что-то еще?).Это затрудняет показ более сложного подхода.

Приведенное выше решение работает с кодом, который вы в данный момент представляете в своем вопросе.

...