Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何传递多个输入值并将结果附加回数据帧_Python_Python 3.x_Pandas_Api_Dataframe - Fatal编程技术网

Python 如何传递多个输入值并将结果附加回数据帧

Python 如何传递多个输入值并将结果附加回数据帧,python,python-3.x,pandas,api,dataframe,Python,Python 3.x,Pandas,Api,Dataframe,我有一个API,我应该向它传递一个值,并从API获取纬度和经度,然后连接回数据帧。API一次只允许传递一个值并检索该值。 我有大约100多个城市的名字,其中包括纬度和经度 我希望一次将一个输入传递给API,并将其存储到dataframe中,并与其他输出一起追加。如何通过迭代多个输入来实现这一点 输入数据帧 Input.head(4) ID CITY 23 Lyon 45 Paris 56 Mumbai 76 Chennai API数据检索代码

我有一个API,我应该向它传递一个值,并从API获取纬度和经度,然后连接回数据帧。API一次只允许传递一个值并检索该值。 我有大约100多个城市的名字,其中包括纬度和经度

我希望一次将一个输入传递给API,并将其存储到dataframe中,并与其他输出一起追加。如何通过迭代多个输入来实现这一点

输入数据帧

Input.head(4)
    ID  CITY
    23  Lyon
    45  Paris
    56  Mumbai
    76  Chennai
API数据检索代码

 import requests

    headers = {
        'accept': 'application/json',
        'Content-Type': 'application/json',
        'Authorization': 'Api-Key XXXXXXXXXXXXXXXXX',
    }

    params = (
        ('provider', 'google'),
    )

    data = '{ "address": "Singapore"}'

    response = requests.post('https://example.com/geocoder/geocode', headers=headers, params=params, data=data)

import json
d = json.loads(response.text)
df =pd.DataFrame([d['position']])
我的预期产出

ID  CITY     lat    lon
23  Lyon     1.352  103.819
45  Paris    1.456  117.345
56  Mumbai   1.345  118 .675
76  Chennai  1.678  117.678
来自API的样本响应

'{"position": {"lat": 1.352083, "lon": 103.819836}, "mapView": {"N": 1.4784001, "E": 104.0945001, "S": 1.1496, "W": 103.594}}\n'
这将输出:

   ID     City       lat         lon
0  23     Lyon  1.352083  103.819836
1  45    Paris  1.352083  103.819836
2  56   Mumbai  1.352083  103.819836
3  76  Chennal  1.352083  103.819836
基本上,创建两个dict
lat_data
lon_data
,然后在一个循环中遍历所有城市,并将城市名称作为键以及纬度和经度数据存储在创建的两个dict中

然后将其映射回您的pandas数据帧,如so
df['lat']=df['City'].map(lat_数据)

这将输出:

   ID     City       lat         lon
0  23     Lyon  1.352083  103.819836
1  45    Paris  1.352083  103.819836
2  56   Mumbai  1.352083  103.819836
3  76  Chennal  1.352083  103.819836
基本上,创建两个dict
lat_data
lon_data
,然后在一个循环中遍历所有城市,并将城市名称作为键以及纬度和经度数据存储在创建的两个dict中


然后把它映射回你的pandas数据框,比如so
df['lat']=df['City'].map(lat_数据)

我也有类似的问题。你能提供一个样本
response.text
从api返回的文本?@bhaskarc,
'{“position”:{“lat 1.352083,“lon”:103.819836},“mapView”:{“N”:1.4784001,“E”:104.0945001,“S”:1.1496,“W”:103.594}\n'
。我也与sameI一起更新了这个问题,sameI也有类似的问题。你能提供一个样本
回答吗?文本
从api返回?@bhaskarc,
{“位置”:{“lat”:1.352083,“lon”:103.819836},“mapView”:{“N”:1.4784001,“E”:104.0945001,“S”:1.1496,“W”:103.594}\N'
。我还更新了同样的问题,我如何用你的代码取代这种代码的和平?
data='{“address”:“Singapore”}
我是否应该用
data='{“address”:“Singapore”}
数据='{“address”:“cities”}
yesintheloop替换为数据='{“address”:city}'。不是城市,也不在报价范围内。注意,我们在城市中循环,在每个循环中,变量cityI中都有城市名称。粘贴另一个工件代码时,出现错误。
params=(^IndentationError:意外缩进
。如果可能,您可以使用正确的缩进修改示例吗?这是一个完全有效的代码。缩进错误发生在您的端部。如果您只是复制粘贴并运行我的代码,它将立即生效。错误在代码中的
params=(^IndentationErro
,我该如何用你的代码取代这种代码的和平
data='{“address”:“Singapore”}
我应该用
data='{“address”:“Singapore”}取代
data='{“address”:“cities”}
yes in-in-loop替换为data='{“address”:city}“。不是城市,也不在报价内。请注意,我们在城市之间循环,在每个循环中,变量city中都有城市名称。粘贴另一件代码时,我遇到了一个错误。
params=(^IndentationError:意外缩进
。如果可能,您可以使用正确的缩进修改示例吗这是一个完全有效的代码。缩进错误发生在您的端部。如果您只是复制粘贴并运行我的代码,它将立即生效。错误在代码的
params=(^IndentationErro