【发布时间】:2021-07-09 14:22:46
【问题描述】:
我有一个如下所示的数据框
| Client | Nodes |
|---|---|
| Client A | [32321,32312,2133432,43242,...] |
| Client B | [575945,545345,54353,5345,...] |
我正在尝试使用 apply 函数为客户端循环遍历每个列表中的每个项目并在每个数字上运行该函数,因此首先对客户端 A 使用 32321,然后使用 32312,然后获取这两个结果和将它们放在一个列表中,然后在下一列中返回。
现在我下面的函数是从每行列表中获取第一项并应用它,所以每行每次都会得到相同的结果。
def FindNodeLL(route_nodes):
for node in route_nodes:
try:
response_xml = requests.get(f'https://api.openstreetmap.org/api/0.6/node/{node}')
response_xml_as_string = response_xml.content
responseXml = ET.fromstring(response_xml_as_string)
for child in responseXml.iter('node'):
RouteNodeLL.append((float(child.attrib['lat']), float(child.attrib['lon'])))
return RouteNodeLL
except:
pass
df[f'Route Nodes LL'] = df.apply(lambda row: FindNodeLL(row['Route Nodes']), axis = 1)
【问题讨论】:
-
请分享您的预期输出。
-
这将是一个元组列表,例如 ((51.3232,-2.43432), (43.4324,-2.43243), (43.4343,-3.4343)...等)
-
将其添加到您的原始问题中
标签: python pandas dataframe apply