【发布时间】:2019-12-15 10:22:18
【问题描述】:
我目前在此错误上停留了一段时间。
lond 数据框有 6807 行 x 15 列。列名是社区、社区列表、平均价格、邮政编码、自治市镇、社区邮政编码、纬度、经度、最近的火车站、到车站的距离、伦敦区、物业类型、房间类型、价格、位置评分。
我想要实现的是使用该功能执行以下操作。
- 提取每个社区的地理坐标。
- 为每个社区提取半径 200m 范围内排名前 100 的场馆(包括类别类型)。
- 清理 json 数据并将数据转换为 pandas 数据框。
请帮助我。这是我的第一个如此规模的项目。
#Defining the to get nearby venues
def getNearbyVenues(names, latitudes, longitudes, radius=100):
venues_list=[]
for name, lat, lng in zip(names, latitudes, longitudes):
print(name)
# Creating the API request URL
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)
# Making the GET request to extract json data
#results = requests.get(url).json()["response"]['groups'][0]['items']
results = requests.get(url).json()["response"]#['groups'][0]['items']
# return only relevant information for each nearby venue
venues_list.append([(
name,
lat,
longi,
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 = ['Neighbourhood',
'Neighbourhood Latitude',
'Neighbourhood Longitude',
'Venue',
'Venue Latitude',
'Venue Longitude',
'Venue Category']
return(nearby_venues)
#Calling the getNearbyVenues function for each neighbourhood to create a dataframe lon_venues
lond = lon_neighbs201.head(600)
LIMIT = 10
lon_venues = getNearbyVenues (names = lond['Neighbourhood'],
latitudes = lond['Latitude'],
longitudes = lond['Longitude']
)
lon_venues
【问题讨论】:
-
我会从检查 df:
nearby_venues开始,在该行之前为它定义列,即nearby_venues.columns=...它可能没有 7 列(根据错误消息)。跨度>