Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/279.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 - Fatal编程技术网

在Python中,如何以特定格式将文件作为参数传递给参数?

在Python中,如何以特定格式将文件作为参数传递给参数?,python,python-3.x,pandas,Python,Python 3.x,Pandas,我有一个像下面这样的文件或数据框,包含城市名称、纬度和经度 city.head(4) City Latitude Longitude Seattle 47.620422 122.349358 Dubai 25.276987 55.296249 Mexico 19.432608 99.1332 Tokyo 35.652832 139.839478 我想将城市数据框中的所有纬度和经度传递给API,并获得相应的 结果。目前

我有一个像下面这样的文件或数据框,包含城市名称、纬度和经度

city.head(4)
    City    Latitude    Longitude
    Seattle 47.620422   122.349358
    Dubai   25.276987   55.296249
    Mexico  19.432608   99.1332
    Tokyo   35.652832   139.839478
我想将城市数据框中的所有纬度和经度传递给API,并获得相应的 结果。目前,我能够通过向parms提供进给lat和long输入

如何使整个步骤自动化。Lat和Long应以这种格式传递到参数中Lat:Long****(前3个小数点应从城市数据框中提取)

API的样本输出

'{"results":[{"place":{"type":"locode","value":"PLWRO"},"measures":[{"ts":1572177600000,"t2m":19.6,"t_min":12.16,"t_max":20.59,"wspd":26,"dir":"W","wgust":37,"rh2m":44,"prsmsl":1015,"skcover":"clear","precip":0.0,"snowd":0,"thunderstorm":"N","fog":"L"}]},{"place":{"type":"locode","value":"DEHAM"},"measures":[{"ts":1572177600000,"t2m":10.49,"t_min":8.18,"t_max":10.6,"wspd":21,"dir":"W","wgust":39,"rh2m":69,"prsmsl":1016,"skcover":"partly_cloudy","precip":0.0,"snowd":0,"thunderstorm":"N","fog":"L"}]}]}'

如何做到这一点。

将浮点列四舍五入到第三位小数,然后转换为字符串。组合所需的列。迭代列并将数据发送到API

>>> df = df.round(3).astype(str)
>>> df
      City Latitude Longitude
0  Seattle    47.62   122.349
1    Dubai   25.277    55.296
2   Mexico   19.433    99.133
3    Tokyo   35.653   139.839
>>> df['LatLong'] = df.Latitude.add(':') + df.Longitude
>>> df
      City Latitude Longitude         LatLong
0  Seattle    47.62   122.349   47.62:122.349
1    Dubai   25.277    55.296   25.277:55.296
2   Mexico   19.433    99.133   19.433:99.133
3    Tokyo   35.653   139.839  35.653:139.839

>>> df.LatLong.str.cat(sep=', ')
'47.62:122.349, 25.277:55.296, 19.433:99.133, 35.653:139.839'
一班轮

>>> df.Longitude.str.cat(df.Latitude, sep=':').str.cat(sep=', ')

我同意毗瑟奴杰夫的回答,但这种特殊的方式需要你转换原始数据,这可能不是处理这种情况的最佳方式

为了保存原始数据,您可以在数据框中创建一小组计算列,如下所示:

df['latp'] = round(df['Latitude'], 3)
df['lonp'] = round(df['Longitude'], 3)

df['param'] = df['latp'].astype(str) + ':' + df['lonp'].astype(str)
…并将“param”列作为参数传递


干杯

我还应该为每个latlong追加
,然后作为参数传递。如何获得两对lat:long@rahulrajans,这就是您所需要的@Rahulrajan?当然,这就是我看起来忘记了一个错误
ufunc'add'没有包含签名匹配类型为dtype的循环(‘api是自定义的,它接受参数输入吗?你能更改api功能吗?@temmo,是的,它可以使用参数输入。基本上我想创建一个附加了lat long的文件,格式如下所述,并将其传递给APIf它是自定义的,为什么要直接发送,发送param/df对象,让它在后端处理并获得结果
df['latp'] = round(df['Latitude'], 3)
df['lonp'] = round(df['Longitude'], 3)

df['param'] = df['latp'].astype(str) + ':' + df['lonp'].astype(str)