首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用涉及函数的Python填充DataFrame中的for循环

使用涉及函数的Python填充DataFrame中的for循环
EN

Stack Overflow用户
提问于 2016-12-31 19:40:36
回答 0查看 181关注 0票数 0

我想从Mapzen检索德国地址的地理数据(经纬度)。Mapzen提供了一个请求密钥的API。每个请求返回一个Json。

下面的代码返回一个地址的经纬度和地址名称:

代码语言:javascript
复制
import pandas as pd
import request

BASE_URL = 'https://search.mapzen.com/v1/search'
txt = 'Stübekamp 33, Hamburg, Germany'
resp = requests.get(BASE_URL, params = {'api_key': "YourKey", 'size': 1, 'text': txt})
data = resp.json()
Full = pd.DataFrame(columns=["Long", "Lat", "Street"])
LongLat = data["bbox"][0:2]
Street = data["features"][0]["properties"]["label"]
Full.loc[1] = pd.Series({"Long": LongLat[1], "Lat": LongLat[0], "Street": Street})

我试图替换txt参数来循环遍历它,但只要我理解,request.get方法就不能被循环。因此,我遵循this方法并定义了一个在for循环中使用的函数。

我希望for循环所做的是将一行的字符串粘贴到函数的txt参数的地址中。这应该重复n次,而n是地址向量的长度。应将检索到的信息(经度/经度/地址)添加到AllAddresses DataFrame的新行中。所以最后我得到了一个有三列("Long“、"Lat”、"Street")的DataFrame,在本例中是三行。

代码语言:javascript
复制
def Getall(Input):
    resp = requests.get('https://search.mapzen.com/v1/search', params = {'api_key': "YourKey", 'size': 1, 'text': Input})
    data = resp.json()
    LongLat = data["bbox"][0:2]
    Street = data["features"][0]["properties"]["label"]
    Full = pd.DataFrame(columns=["Long", "Lat", "Street"])
    Full.loc[1] = pd.Series({"Long": LongLat[1], "Lat": LongLat[0], "Street": Street})

    return Full


addresses = pd.DataFrame(["Stübekamp 33, Hamburg, Germany", "Mesterfeld 28, Hamburg, Germany","Beutnerring 2, Hamburg, Germany"])


AllAddresses = []
for index, row  in addresses.iterrows(): 
    Input = row("0")
    data = Getall(Input)
    AllAddresses.append = data

但是,此代码返回以下错误:

代码语言:javascript
复制
TypeError: 'Series' object is not callable

我读到iterrows是一种方法,但我来自R,在这里我感到有点迷茫。

EN

回答

页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41407986

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档