当前位置: 首页 > news >正文

使用 Pandas 读取 JSON 数据的五种常见结构解析

文章目录

    • 引言
    • JSON 数据的五种常见结构
      • 1. `'split'` 结构
      • 2. `'records'` 结构
      • 3. `'index'` 结构
      • 4. `'columns'` 结构
      • 5. `'values'` 结构

引言

在日常生活中,我们经常与各种数据打交道,无论是从网上购物的订单信息到社交媒体上的动态更新。JSON(JavaScript Object Notation)是一种常见的数据交换格式,被广泛应用于互联网服务中。Pandas 是 Python 中用于数据分析的强大库,它能够轻松处理 JSON 数据,并将其转换为易于操作的数据表格形式——DataFrame。

JSON 数据的五种常见结构

1. 'split' 结构

假设您正在整理家庭开支记录,您的 JSON 文件可能像这样组织,分为索引、列名和数据值三个部分。

JSON 示例:

{"index": ["超市", "餐厅"],"columns": ["支出金额", "日期"],"data": [[120, "2024-11-01"], [85, "2024-11-02"]]
}

Pandas 代码及输出结果:

import pandas as pdjson_split = '{"index": ["超市", "餐厅"], "columns": ["支出金额", "日期"], "data": [[120, "2024-11-01"], [85, "2024-11-02"]]}'
df_split = pd.read_json(json_split, orient='split')
print(df_split)

输出结果示例:

       支出金额        日期
超市       120  2024-11-01
餐厅        85  2024-11-02

2. 'records' 结构

如果您有多个朋友的联系方式列表,每条记录可以是一个包含所有字段的字典。

JSON 示例:

[{"姓名": "李华", "电话": "12345678"},{"姓名": "王伟", "电话": "87654321"}
]

Pandas 代码及输出结果:

json_records = '[{"姓名": "李华", "电话": "12345678"}, {"姓名": "王伟", "电话": "87654321"}]'
df_records = pd.read_json(json_records, orient='records')
print(df_records)

输出结果示例:

   姓名       电话
0  李华  12345678
1  王伟  87654321

3. 'index' 结构

想象一下,您有一个书籍收藏列表,其中每一本书都有一个唯一的编号作为索引。

JSON 示例:

{"书1": {"标题": "Python编程", "作者": "张三"},"书2": {"标题": "数据分析入门", "作者": "李四"}
}

Pandas 代码及输出结果:

json_index = '{"书1": {"标题": "Python编程", "作者": "张三"}, "书2": {"标题": "数据分析入门", "作者": "李四"}}'
df_index = pd.read_json(json_index, orient='index')
print(df_index)

输出结果示例:

      标题         作者
书1  Python编程     张三
书2  数据分析入门     李四

4. 'columns' 结构

考虑一个情景,您正在记录每周的天气情况,以列为单位存储温度和湿度等信息。

JSON 示例:

{"温度": {"周一": 22, "周二": 20},"湿度": {"周一": 58, "周二": 60}
}

Pandas 代码及输出结果:

json_columns = '{"温度": {"周一": 22, "周二": 20}, "湿度": {"周一": 58, "周二": 60}}'
df_columns = pd.read_json(json_columns, orient='columns')
print(df_columns)

输出结果示例:

      温度  湿度
周一    22   58
周二    20   60

5. 'values' 结构

最后,如果您的数据是简单的二维数组,不包括任何索引或列名信息。

JSON 示例:

[[22, 58], [20, 60]]

Pandas 代码及输出结果:

json_values = '[[22, 58], [20, 60]]'
df_values = pd.read_json(json_values, orient='values')
print(df_values)

输出结果示例:

   0   1
0  22  58
1  20  60
http://www.lryc.cn/news/502381.html

相关文章:

  • C++鼠标轨迹算法(鼠标轨迹模拟真人移动)
  • Go mysql驱动源码分析
  • GNSS误差源及差分定位
  • pg数据类型
  • 【java】finalize方法
  • HNU_多传感器(专选)_作业4(构建单层感知器实现分类)
  • 以太网链路详情
  • vue3 setup语法,子组件点击一个元素打印了这个元素的下标id,怎么传递给父组件,让父组件去使用
  • 《Keras3 minist 手写数字AI模型训练22秒精度达到:0.97》
  • 【.net core】【sqlsugar】大数据写入配置(需要版本5.0.45)
  • ansible运维实战
  • DDOS分布式拒绝服务攻击
  • 如何使用 Python 实现 UDP 通信?
  • MTK 配置文件梳理
  • 论文笔记:Treat Visual Tokens as Text? But Your MLLM Only Needs Fewer Efforts to See
  • 软考高级架构 —— 10.6 大型网站系统架构演化实例 + 软件架构维护
  • 2024美赛数学建模C题:网球比赛中的动量,用马尔可夫链求解!详细分析
  • 23种设计模式之状态模式
  • Elasticsearch Serverless 中的数据流自动分片
  • YOLOv10改进,YOLOv10添加U-Netv2分割网络中SDI信息融合模块+GSConv卷积,助力小目标
  • xshell连接虚拟机,更换网络模式:NAT->桥接模式
  • sql的where条件中使用case when
  • MacOS 上以源码形式安装 MySQL 5.7
  • MySQL 事务隔离级别详解
  • C语言——高精度问题
  • aippt:AI 智能生成 PPT 的开源项目
  • 【Qt之·类QSettings·参数保存】
  • location重定向和nginx代理
  • iptables详解
  • Edge SCDN深度解析,边缘安全加速的创新实践