Pertanyaan Simpan urutan kolom dan baris saat menyimpan pandas dataframe di json


Saat menyimpan data dalam objek json dengan to_json, dan membacanya kembali dengan read_json, baris dan kolom dikembalikan diurutkan sesuai abjad. Apakah ada cara untuk menjaga hasil memerintahkan atau mengatur ulang mereka pada saat pengambilan?


5
2018-04-23 14:24


asal


Jawaban:


Anda bisa menggunakannya orient='split', yang menyimpan informasi indeks dan kolom dalam daftar, yang menyimpan pesanan:

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

Ingat untuk digunakan orient='split' saat membaca juga, atau Anda akan mendapatkannya

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

9
2018-04-23 14:31