首页  >  文章  >  后端开发  >  如何将嵌套 JSON 数据导入并处理到 Pandas DataFrame 中?

如何将嵌套 JSON 数据导入并处理到 Pandas DataFrame 中?

Linda Hamilton
Linda Hamilton原创
2024-10-24 11:40:02803浏览

How to Import and Process Nested JSON Data into Pandas DataFrames?

将嵌套 JSON 文件读取为 Pandas DataFrame

使用包含嵌套对象的 JSON 数据时,可能需要将其转换为更用于分析或操作的结构化格式。 Pandas 提供了有效处理此类数据的有用工具。

场景:

考虑具有以下结构的 JSON 文件:

<code class="json">{
    "number": "",
    "date": "01.10.2016",
    "name": "R 3932",
    "locations": [
        { ... },
        { ... },
        { ... }
    ]
}</code>

使用 json_normalize:

json_normalize 函数允许您将嵌套的 JSON 展平到 DataFrame 中。对于给定的 JSON,您可以执行以下操作:

<code class="python">import pandas as pd

with open('myJson.json') as data_file:    
    data = json.load(data_file)  

df = pd.json_normalize(data, 'locations', ['date', 'number', 'name'], 
                    record_prefix='locations_')
print (df)</code>

这将创建一个包含以下列的 DataFrame:

扩展以保留嵌套数据:

如果您希望保持嵌套数组完整,可以将 read_json 与解析参数一起使用。这会将 JSON 解析为 DataFrame,其中位置列作为字典列表。

<code class="python">df = pd.read_json("myJson.json", orient='records', parsing = True)</code>

或者,您可以使用构造函数参数解析位置列:

<code class="python">df = pd.read_json("myJson.json", orient='records',
                  constructor=lambda x: pd.DataFrame(x['locations']))</code>

连接嵌套值:

如果要将位置列中的值连接成单个字符串,可以使用 groupby 和 apply 函数:

<code class="python">df = df.groupby(['date', 'name', 'number'])['locations'].apply(','.join).reset_index()</code>

以上是如何将嵌套 JSON 数据导入并处理到 Pandas DataFrame 中?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn