首页 > 解决方案 > 如何展平熊猫中的json字段

问题描述

我正在加载一个带有嵌套值的 json 文件。这是它的加载方式:

>>> pd.read_json('/Users/david/Desktop/validate_headers/json/example_array2.json')
                                  address firstname   lastname  zip_code
0     {'state': 'MI', 'town': 'Dearborn'}    Jimmie  Barninger     12345
1  {'state': 'CA', 'town': 'Los Angeles'}      John        Doe     90027

我想展平嵌套对象,以便我的最终数据框如下所示:

firstname   lastname    zip_code    address.state   address.town
Jimmie      Barninger   12345       MI              Dearborn
John        Doe         90027       CA              Los Angeles

我将如何做到这一点,也就是说,如果数据框列是一个对象,将该列拆分为多个列(并这样做直到没有 json 对象离开)?

标签: pythonpandas

解决方案


简单得多:

df = pd.DataFrame({'address': [{'state': 'MI', 'town': 'Dearborn'} , {'state': 'CA', 'town': 'Los Angeles'}], 'name':['John', 'Jane']})

df = df.join(df['address'].apply(pd.Series))

然后

df.drop(columns='address')

推荐阅读