У меня есть набор данных со списком колледжей в Нью-Йорке C. Я пытаюсь создать функцию, которая будет извлекать данные о месте проведения Foursquare для окружения каждого места с помощью поискового запроса и создавать новый фрейм данных, который будет сочетать как колледжи Нью-Йорка, так и места проведения Foursquare. Это образец моего фрейма данных колледжа.
College # Students Latitude Longitude
CUNY Borough of Manhattan Community College 26,606 40.7172 -74.0122
Suffolk County Community College 26,600 40.8486 -73.059
Nassau Community College 22,374 40.0548 -86.943
Функция, которую я использую для получения данных из foursquare:
def getNearbyhotspots(names, latitudes, longitudes, radius=50):
search_query = 'pubs'
venues_list=[]
for name, lat, lng in zip(names, latitudes, longitudes):
print(name)
# create the API request URL
url = 'https://api.foursquare.com/v2/venues/search?client_id={}&client_secret={}&ll={},{}&v={}&query={}&radius={}'.\
format(CLIENT_ID,
CLIENT_SECRET,
lat,
lng,
VERSION,
search_query,
radius,
)
# make the GET request
results = requests.get(url).json()['response']['venues']
# return only relevant information for each nearby venue
venues_list.append([(
name,
lat,
lng,
v[0]['name'],
v[0]['location']['lat'],
v[0]['location']['lng'],
v[0]['categories'][0]['name']) for v in results])
nearby_venues = pd.DataFrame([item for venue_list in venues_list for item in venue_list])
nearby_venues.columns = ['College',
'College Latitude',
'College Longitude',
'Venue',
'Venue Latitude',
'Venue Longitude',
'Venue Category']
return(nearby_venues)
Я вызываю функцию и получаю сообщение об ошибке. например:
ny_pubs = getNearbyhotspots(names=cc_df['College'],
latitudes=cc_df['Latitude'],
longitudes=cc_df['Longitude']
)
CUNY Borough of Manhattan Community College
Suffolk County Community College
Nassau Community College
ValueError: Length mismatch: Expected axis has 0 elements, new values have 7 elements
Хотя я создал фиктивный фрейм данных «near_ways» с 7 столбцами.
Я подозреваю, что проблема в функции с добавлением в список venues_list.
Результат для случайного значения координаты выглядит следующим образом:
results = requests.get(url).json()['response']['venues']
[{'id': '561b1281498e2a8bbf3b0fff',
'name': "McAteer's Pub",
'location': {'lat': 41.069234,
'lng': -73.799114,
'labeledLatLngs': [{'label': 'display',
'lat': 41.069234,
'lng': -73.799114}],
'distance': 708,
'cc': 'US',
'city': 'Greenburgh',
'state': 'NY',
'country': 'United States',
'formattedAddress': ['Greenburgh, NY', 'United States']},
'categories': [{'id': '4bf58dd8d48988d116941735',
'name': 'Bar',
'pluralName': 'Bars',
'shortName': 'Bar',
'icon': {'prefix': 'https://ss3.4sqi.net/img/categories_v2/nightlife/pub_',
'suffix': '.png'},
'primary': True}],
'referralId': 'v-1590678183',
'hasPerk': False}]