首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >JSON to pandas DataFrame

JSON to pandas DataFrame
EN

Stack Overflow用户
提问于 2014-01-14 09:32:08
回答 13查看 580.6K关注 0票数 199

我要做的是沿着纬度和经度坐标指定的路径从google地图API中提取高程数据,如下所示:

代码语言:javascript
复制
from urllib2 import Request, urlopen
import json

path1 = '42.974049,-81.205203|42.974298,-81.195755'
request=Request('http://maps.googleapis.com/maps/api/elevation/json?locations='+path1+'&sensor=false')
response = urlopen(request)
elevations = response.read()

这给了我一个看起来像这样的数据:

代码语言:javascript
复制
elevations.splitlines()

['{',
 '   "results" : [',
 '      {',
 '         "elevation" : 243.3462677001953,',
 '         "location" : {',
 '            "lat" : 42.974049,',
 '            "lng" : -81.205203',
 '         },',
 '         "resolution" : 19.08790397644043',
 '      },',
 '      {',
 '         "elevation" : 244.1318664550781,',
 '         "location" : {',
 '            "lat" : 42.974298,',
 '            "lng" : -81.19575500000001',
 '         },',
 '         "resolution" : 19.08790397644043',
 '      }',
 '   ],',
 '   "status" : "OK"',
 '}']

当作为DataFrame放入时,我得到的结果是:

代码语言:javascript
复制
pd.read_json(elevations)

这是我想要的:

我不确定这是否可能,但我主要寻找的是一种能够将海拔、纬度和经度数据放在一个pandas数据帧中的方法(不需要有花哨的多行头)。

如果有人能在使用这些数据方面提供帮助或建议,那就太好了!如果你看不出来我以前没怎么处理过json数据...

编辑:

这种方法并不那么吸引人,但似乎是有效的:

代码语言:javascript
复制
data = json.loads(elevations)
lat,lng,el = [],[],[]
for result in data['results']:
    lat.append(result[u'location'][u'lat'])
    lng.append(result[u'location'][u'lng'])
    el.append(result[u'elevation'])
df = pd.DataFrame([lat,lng,el]).T

最终生成具有列纬度、经度、高程的数据帧

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

https://stackoverflow.com/questions/21104592

复制
相关文章

相似问题

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