在json中存储pandas数据帧时,保持列和行顺序

Alo*_*lon 9 python dataframe pandas

当使用to_json将数据存储在json对象中,并使用read_json读回它时,将按字母顺序返回行和列.有没有办法在检索时保持结果排序或重新排序?

DSM*_*DSM 15

您可以使用orient='split',它将索引和列信息存储在列表中,从而保留顺序:

In [34]: df
Out[34]: 
   A  C  B
5  0  1  2
4  3  4  5
3  6  7  8

In [35]: df.to_json(orient='split')
Out[35]: '{"columns":["A","C","B"],"index":[5,4,3],"data":[[0,1,2],[3,4,5],[6,7,8]]}'

In [36]: pd.read_json(df.to_json(orient='split'), orient='split')
Out[36]: 
   A  C  B
5  0  1  2
4  3  4  5
3  6  7  8
Run Code Online (Sandbox Code Playgroud)

只记得orient='split'在阅读中使用,或者你会得到

In [37]: pd.read_json(df.to_json(orient='split'))
Out[37]: 
  columns       data  index
0       A  [0, 1, 2]      5
1       C  [3, 4, 5]      4
2       B  [6, 7, 8]      3
Run Code Online (Sandbox Code Playgroud)