Python pandas读取JSON文件生成数据框完整指南
本文详细介绍如何使用Python pandas库中的read_json函数将JSON文件或字符串转换为数据框。文章通过具体示例演示了records、index、columns、values及split五种orient格式的参数配置与输出结果,并补充了compression压缩加载与encoding编码设置方法,帮助开发者高效处理结构化JSON数据。
前言
本文主要讲解如何将JSON文件或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压缩文件内的JSON格式为:
[
[
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)至此,关于读取JSON文件生成pandas数据框的详细介绍完毕。如需了解更多Json生成pandas数据框的相关内容,请搜索本站历史文章或继续浏览后续文章,感谢大家的支持!
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













