最近需要将csv文件转成DataFrame并以json的形式展示到前台,故需要用到Dataframe的to_json方法
to_json方法默认以列名为键,列内容为值,形成{col1:[v11,v21,v31…],col2:[v12,v22,v32],…}这种格式,但有时我们需要按行来转为json,形如这种格式[row1:{col1:v11,col2:v12,col3:v13…},row2:{col1:v21,col2:v22,col3:v23…}]
通过查找官网我们可以看到to_json方法有一个参数为orient,其参数说明如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
orient : string
Series
default is ‘index'
allowed values are: {‘split ',' records ',' index'}
DataFrame
default is ‘columns'
allowed values are: {‘split ',' records ',' index ',' columns ',' values'}
The format of the JSON string
split : dict like {index - > [index], columns - > [columns], data - > [values]}
records : list like [{column - > value}, … , {column - > value}]
index : dict like {index - > {column - > value}}
columns : dict like {column - > {index - > value}}
values : just the values array
table : dict like {‘schema ': {schema}, ‘data' : {data}} describing the data, and the data component is like orient = 'records' .
Changed in version 0.20 . 0
|
大致意思为:
如果是Series转json,默认的orient是'index',orient可选参数有 {‘split','records','index'}
如果是DataFrame转json,默认的orient是'columns',orient可选参数有 {‘split','records','index','columns','values'}
json的格式如下
split,样式为 {index -> [index], columns -> [columns], data -> [values]}
records,样式为[{column -> value}, … , {column -> value}]
index ,样式为 {index -> {column -> value}}
columns,样式为 {index -> {column -> value}}
values,数组样式
table,样式为{‘schema': {schema}, ‘data': {data}},和records类似
看一下官网给的demo
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
df = pd.DataFrame([[ 'a' , 'b' ], [ 'c' , 'd' ]],
index = [ 'row 1' , 'row 2' ],
columns = [ 'col 1' , 'col 2' ])
###########
split
###########
df.to_json(orient = 'split' )
>'{ "columns" :[ "col 1" , "col 2" ],
"index" :[ "row 1" , "row 2" ],
"data" :[[ "a" , "b" ],[ "c" , "d" ]]}'
###########
index
###########
df.to_json(orient = 'index' )
> '{"row 1":{"col 1":"a","col 2":"b"},"row 2":{"col 1":"c","col 2":"d"}}'
###########
records
###########
df.to_json(orient = 'index' )
> '[{"col 1":"a","col 2":"b"},{"col 1":"c","col 2":"d"}]'
###########
table
###########
df.to_json(orient = 'table' )
>'{ "schema" : { "fields" : [{ "name" : "index" , "type" : "string" },
{ "name" : "col 1" , "type" : "string" },
{ "name" : "col 2" , "type" : "string" }],
"primaryKey" : "index" ,
"data" : [{ "index" : "row 1" , "col 1" : "a" , "col 2" : "b" },
{ "index" : "row 2" , "col 1" : "c" , "col 2" : "d" }]}'
|
主要参考官网API:https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.to_json.html
以上这篇pandas.DataFrame.to_json按行转json的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/huanbia/article/details/72674832