def getNearbyVenues(names, latitudes, longitudes, radius=500):
venues_list=[]
for name, lat, lng in zip(names, latitudes, longitudes):
print(name)
url = 'https://api.foursquare.com/v2/venues/explore?&client_id={}&client_secret={}&v={}&ll={},{}&radius={}&limit={}'.format(
CLIENT_ID, CLIENT_SECRET, VERSION, lat, lng, radius, LIMIT)
results = requests.get(url).json()["response"]['groups'][0]['items']
venues_list.append([( name, lat, lng, v['venue']['name'], v['venue']['location']['lat'], v['venue']['location']['lng'], v['venue']['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 = ['Neighborhood', 'Neighborhood Latitude', 'Neighborhood Longitude', 'Venue', 'Venue Latitude', 'Venue Longitude', 'Venue Category']
return(nearby_venues)
当我调用上面的函数时
toronto_venues = getNearbyVenues(names=df['Neighborhood'], latitudes=df['Latitude'],longitudes=df['Longitude'])
我犯了以下错误
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-43-0a244f551e86> in <module>
2 #nearyby_venues
3 #toronto_venues = pd.DataFrame(pd.np.empty((0, 7)))
----> 4 toronto_venues = getNearbyVenues(names=df['Neighborhood'], latitudes=df['Latitude'],longitudes=df['Longitude'])
<ipython-input-42-217083dbcb80> in getNearbyVenues(names, latitudes, longitudes, radius)
14
15 nearby_venues = pd.DataFrame([item for venue_list in venues_list for item in venue_list])
---> 16 nearby_venues.columns = ['Neighborhood', 'Neighborhood Latitude', 'Neighborhood Longitude', 'Venue', 'Venue Latitude', 'Venue Longitude', 'Venue Category']
17
18
~\Anaconda3\lib\site-packages\pandas\core\generic.py in __setattr__(self, name, value)
5285 try:
5286 object.__getattribute__(self, name)
-> 5287 return object.__setattr__(self, name, value)
5288 except AttributeError:
5289 pass
pandas\_libs\properties.pyx in pandas._libs.properties.AxisProperty.__set__()
~\Anaconda3\lib\site-packages\pandas\core\generic.py in _set_axis(self, axis, labels)
659
660 def _set_axis(self, axis, labels) -> None:
--> 661 self._data.set_axis(axis, labels)
662 self._clear_item_cache()
663
~\Anaconda3\lib\site-packages\pandas\core\internals\managers.py in set_axis(self, axis, new_labels)
176 if new_len != old_len:
177 raise ValueError(
--> 178 f"Length mismatch: Expected axis has {old_len} elements, new "
179 f"values have {new_len} elements"
180 )
ValueError: Length mismatch: Expected axis has 0 elements, new values have 7 elements
从堆栈跟踪中我了解到,问题是由nearby_venues
数据帧引起的,我分配列的方式是错误背后的主要原因。我能做些什么来解决这个问题
目前没有回答
相关问题 更多 >
编程相关推荐