我以前从未使用过json
文件。目前我正在做的就是:
df = pd.read_json("precincts-with-results.geojson.gz")
df['features']
这是上面的结果:
{'type': 'Feature',
'properties': {'GEOID': '05047-1-A (Oz Wd 1)',
'votes_dem': 79,
'votes_rep': 279,
'votes_total': 366,
'votes_per_sqkm': 54.2,
'pct_dem_lead': -54.6},
'geometry': {'type': 'MultiPolygon',
'coordinates': [[[[-93.88536364311612, 35.483758439321655],
[-93.8840470388143, 35.483727092097084],
[-93.88403177163875, 35.483726728784056],
[-93.88403177478405, 35.48372661335151],
[-93.87956152062023, 35.483586322546344],
[-93.87520339804045, 35.48339873745174],
[-93.87534656033012, 35.480428139370346],
[-93.87604589142236, 35.48045051399295], ...
我想要一个如下所示的数据帧:
GEOID votes_dem votes_rep votes_total votes_per_sqkm pct_dem_lead
05047-1-A (Oz Wd 1) 79 279 366 54.2 -54.6
您可以在此处下载数据集(大小264MB):https://int.nyt.com/newsgraphics/elections/map-data/2020/national/precincts-with-results.geojson.gz
感谢您的帮助和代码
这对我有用
结果看起来像
我已经实现了一段代码,用于展平JSON并提取选定字段-
How to extract fields from nested json and save in a data structure
下面是执行该任务的代码(只需更新字段列表,并用json文件路径替换“test1.json”)-
您的json文件没有正确的格式,无法由pandas立即转换为数据帧。首先,您需要将json文件中的数据提取到字典中:
然后,您必须转换数据以满足您的需要。因为字典是嵌套的,所以需要规范化数据。现在我不完全确定您到底希望数据帧看起来是什么样子,所以我这里不包括代码,但我认为您可以使用
pd.json_normalize
来实现这一点。它返回一个数据帧。有关此操作的文档可在此处找到:https://pandas.pydata.org/docs/reference/api/pandas.json_normalize.html相关问题 更多 >
编程相关推荐