将嵌套 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中文网其他相关文章!