Python Pandas Как читать json без сортировки по индексу?

#pandas #dataframe

#pandas #фрейм данных

Вопрос:

Если у меня есть файл json, подобный этому, и я импортирую его в dataframe, порядок столбцов всегда будет sort -0.8, -0.9. я хочу, чтобы порядок сохранялся таким, как он определен в json, который равен -0.9, -0.8

 {
    "-0.90": {
        "A": 1.0,
        "B": 0.4935585804
    },
    "-0.80": {
        "A": 1.0,
        "B": 0.4935585804
    }
}
  

Ответ №1:

Вы можете загрузить свои данные json в виде OrderedDict, чтобы сохранить порядок ключей, а затем использовать DataFrame.from_dict конструктор:

 import json
from collections import OrderedDict

s = """{
    "-0.90": {
        "A": 1.0,
        "B": 0.4935585804
    },
    "-0.80": {
        "A": 1.0,
        "B": 0.4935585804
    }
}"""

data = json.loads(s, object_pairs_hook=OrderedDict)
pd.DataFrame.from_dict(data)

      -0.90     -0.80
A  1.000000  1.000000
B  0.493559  0.493559