读Json文件生成pandas数据框详情
作者:梦想画家 发布时间:2023-01-11 19:29:01
前言
本文讲解如何加载json文件或字符串为pandas数据框。pandas把json数据分成几种典型类型,希望对你实际数据应用开发有所启示。
有时可能需要转换json文件位pandas数据框。使用pandas内置的read_json()函数很容易实现,
其语法如下:
read_json(‘path’, orient=’index’)
path: json文件的路径
orient: json文件的格式描述,缺省是
index
,还有其他选型:split, records, columns, values
。
下面通过几个示例进行说明。
records格式
假设json文件my_file.json的格式如下:
[
{
"points": 25,
"assists": 5
},
{
"points": 12,
"assists": 7
},
{
"points": 15,
"assists": 7
},
{
"points": 19,
"assists": 12
}
]
我们使用pandas的函数read_json,只要只从orient参数位records:
# 加载json文件,生成pandas数据框
df = pd.read_json('data/json_file.json', orient='records')
# 查看数据框
print(df)
输出结果:
points assists
0 25 5
1 12 7
2 15 7
3 19 12
index格式
假设json文件格式为:
{
"0": {
"points": 25,
"assists": 5
},
"1": {
"points": 12,
"assists": 7
},
"2": {
"points": 15,
"assists": 7
},
"3": {
"points": 19,
"assists": 12
}
}
与上面实现代码一样,仅需要修改orient=‘index’:
import pandas as pd
df = pd.read_json("data/my_file.json", orient='index')
print(df)
输出结果:
points assists
0 25 5
1 12 7
2 15 7
3 19 12
columns 类型
假设json文件格式为:
{
"points": {
"0": 25,
"1": 12,
"2": 15,
"3": 19
},
"assists": {
"0": 5,
"1": 7,
"2": 7,
"3": 12
}
}
加载代码修改orient参数为’columns’:
import pandas as pd
df = pd.read_json("data/my_file.json", orient='columns')
print(df)
结果与上面一致。
values格式
假设json文件代码如下:
[
[
25,
5
],
[
12,
7
],
[
15,
7
],
[
19,
12
]
]
加载代码如下:
import pandas as pd
df = pd.read_json("data/my_file.json", orient='values')
print(df)
输出结果:
0 1
0 25 5
1 12 7
2 15 7
3 19 12
split 参数示例
下面看split参数示例:
import pandas as pd
# 示例数据
data = '{"columns":["col 1","col 2"], "index":["row 1","row 2"], "data":[["a","b"],["c","d"]]}'
df = pd.read_json(data, orient='split')
print(df)
输出交叉表形式结果:
col 1 col 2
row 1 a b
row 2 c d
如果不指定index,则行自动生成序号:
import pandas as pd
data = '{"columns":["col 1","col 2"], "data":[["a","b"],["c","d"]]}'
df = pd.read_json(data, orient='split')
print(df)
输出结果:
col 1 col 2
0 a b
1 c d
压缩与编码
使用compression参数可以解压并载入json文件,参数选型有:‘zip’, ‘gzip’, ‘bz2’, ‘zstd’。如果指定zip,则确保文件为zip文件格式,None表示不解压。
使用 encoding
指定自定义编码,缺省为 UTF-8 编码。
假设my_file.zip压缩文件格式为:
[
[
25,
5
],
[
12,
7
],
[
15,
7
],
[
19,
12
]
]
载入代码:
import pandas as pd
df = pd.read_json("data/my_file.zip", orient='values', compression='zip')
print(df)
来源:https://blog.csdn.net/neweastsun/article/details/125125565
猜你喜欢
- 春节休息了几天,今天上班第一天,最近混twitter混得比较多,经常要压缩URL,以前做了个书签用http://is.gd/压缩,后来发现了
- 1.因为oracle 10g暂时没有与win7兼容的版本,我们可以通过对安装软件中某些文件的修改达到安装的目地。 a)打开“\ORACLE1
- 1、冒泡排序它反复访问要排序的元素列,并依次比较两个相邻的元素。如果顺序(如从大到小)错了,就交换它们。访问元素的工作是反复进行,直到没有相
- asp在线备份sql server数据库: 1、备份sqlserver 代码如下:<% SQL="backup&n
- 本文实例为大家分享了python3使用QQ邮箱发邮件的具体代码,供大家参考,具体内容如下直接上代码import smtplibfrom em
- 前言初学者看到 Python 中的下划线 _ 时可能会有些懵圈,不知道这个到底是干什么用的,今天就来盘点一下 Python 中间的下划线有哪
- 本文实例为大家分享了python实现手写数字识别的具体代码,供大家参考,具体内容如下import numpyimport scipy.spe
- python3.7简单的爬虫,具体代码如下所示:#https://www.runoob.com/w3cnote/python-spider-
- 今天分享的这篇文章,文字不多,代码为主。绝对干货,童叟无欺,主要分享了提升 Python 性能的 20 个技巧,教你如何告别慢Python。
- 我们可能会出现这种情况,某个表原来设计不周全,导致表里面的数据数据重复,那么,如何对重复的数据进行删除呢?重复的数据可能有这样两种情况,第一
- 目录一、常见orm数据库框架1、peewee 简单demo二、Model 和 Field 关系三、Model 模型四、Filed 字段1、字
- 密码强度是一个很普遍的功能,比较简单,主要是怎么制定这个强度规则。现在需要升级密码强度的验证,以前的验证比较简单,现在已经不能满足需求了,现
- numpy的delete是可以删除数组的整行和整列的,下面简单介绍和举例说明delete函数用法:numpy.delete(arr, obj
- 实例: <?php $conn1 = mysql_connect("127.0.0.1", "root&
- 本文重在实践和测试,如果你还不了解Data URI,推荐先阅读秦歌的Data URI 和 MHTML。旺旺点灯(JS)实践经过:因为要对SR
- 一、PillowPIL:Python Imaging Library,已经是Python平台事实上的图像处理标准库了。PIL功能非常强大,但
- 目录1 Python变量概述2 Python变量的命名3 Python变量赋值3.1 Python赋值概述3.2 Python变量的基本格式
- 在CentOS7下,默认安装的就是python2.7,我现在来教大家如何安装python3:1、首先安装python3.6可能使用的依赖#
- Flask的模板功能是基于Jinja2模板引擎来实现的。模板文件存放在当前目前下的子目录templates(一定要使用这个名字)下。main
- 一、类的构造函数与析构函数_init__ 函数是python 类的构造函数,在创建一个类对象的时候,就会自动调用该函数;可以用来在创建对象的