如何从JSON文件规范化或爆炸字段?



我正在读取JSON文件;它是这样的。

type                                           features
0     FeatureCollection  {'type': 'Feature', 'properties': {'GEO_ID': '...
1     FeatureCollection  {'type': 'Feature', 'properties': {'GEO_ID': '...
2     FeatureCollection  {'type': 'Feature', 'properties': {'GEO_ID': '...
3     FeatureCollection  {'type': 'Feature', 'properties': {'GEO_ID': '...
4     FeatureCollection  {'type': 'Feature', 'properties': {'GEO_ID': '...

我想弄清楚如何爆炸名为'features'的列,但我不能让它工作得很好。

我试了下面的代码,它什么也没做。

import pandas as pd
data = pd.read_json('C:\Users\ryans\Desktop\test.json')
print(type(data))
# not working
df = pd.json_normalize(data)

我也试过这个代码。

import pandas as pd
import json
from pandas.io.json import json_normalize
with open('C:\Users\ryans\Desktop\test.json') as data_file:    
data = json.load(data_file)
print(data)
df = pd.DataFrame(data)

甚至在运行第二个代码示例之后,所有内容都被塞进名为"features"的字段中。如何将特性中的所有数据分解到单独的列中,并将所有数据都放入标准化的数据框架中?

如果没有访问更多的数据进行测试,我认为您需要使用.json_normalize然后在结果上使用pd.concat,像这样:

import pandas as pd
import json
with open('C:\Users\ryans\Desktop\test.json') as data_file:    
data = json.load(data_file)
df_features = pd.json_normalize(data, 'features')
df = pd.concat([pd.DataFrame(data.drop('features', axis=1)), df_features], axis=1)
df_properties = pd.json_normalize(df['properties'])
df = pd.concat([df.drop('properties', axis=1), df_properties], axis=1)

相关内容

  • 没有找到相关文章

最新更新