Я бы немного изменил функцию:
x hl wl
0 da (37.7, -121) (47.7, -221)
1 wfh (37.0, -125) (47.0, -225)
2 rsh (39, 135) (49, 235)
def x(df):
for i, row in df.iterrows():
lat, lon = row['hl']
yield {
"type": "scattermapbox",
"lat": lat,
"lon": lon,
#"text": ,
"mode": "markers",
"marker": {
"size": 3,
"opacity": 1.0
}
}
print([s for s in x(df)])
[
{
"type": "scattermapbox",
"lat": 37.7,
"lon": -121,
"mode": "markers",
"marker": {
"size": 3,
"opacity": 1.0
}
},
{
"type": "scattermapbox",
"lat": 37.0,
"lon": -125,
"mode": "markers",
"marker": {
"size": 3,
"opacity": 1.0
}
},
{
"type": "scattermapbox",
"lat": 39,
"lon": 135,
"mode": "markers",
"marker": {
"size": 3,
"opacity": 1.0
}
}
]
Или в вашем коде:
...
retvalue = []
for i, row in df.iterrows():
lat, lon = row['hl']
retvalue.append({
"type": "scattermapbox",
"lat": lat,
"lon": lon,
#"text": ,
"mode": "markers",
"marker": {
"size": 3,
"opacity": 1.0
})
return retvalue