Панды - установить числовое значение из JSON как число с плавающей запятой с точностью до 4 цифр - PullRequest
0 голосов
/ 29 мая 2018

Я загружаю данные из файла JSON, который находится в формате с плавающей точкой, например 13.4567.

Проблема в том, что когда я загружаю их в Pandas, когда я печатаю это поле, я получаю научную запись, такую ​​как1.34567e+06.

Есть ли способ установить поле как обычное с плавающей точкой с точностью до 4 цифр, как в исходном файле JSON, когда я создаю кадр данных?Или мне нужно обработать данные после создания файла данных?

Этот код используется для загрузки JSON:

with open('myjson.json') as f:
    loaded_file = json.load(f)

df = pd.DataFrame.from_dict(json_normalize(loaded_file), orient='column')

print(df.result)

Файл данных выглядит следующим образом:

[
  {
      "info" : {
         "timestamp" : "2018-01-22 00:04:00.637000",
         "commit_hash" : "234234fdsfk3"
      },
      "action" : {
         "time_sec" : 14.7584,
         "diff" : 12345.375,
      }
   },
  {
      "info" : {
         "timestamp" : "2018-01-22 01:04:00.543000",
         "commit_hash" : "23eqdasfdsfk3"
      },
      "action" : {
         "time_sec" : 12.3456,
         "diff" : 543546.2234,
      }
   }
]

1 Ответ

0 голосов
/ 30 мая 2018

Возможно, это то, что вы ищете:

pd.options.display.float_format = '{:.4f}'.format

или

pd.set_option('display.precision',4)

. Это позволит пандам установить формат отображения ваших поплавков.Если вы действительно хотите специально округлить числа, вам нужно будет округлить столбцы, поскольку при импорте автоматически будет определен тип d как число с плавающей точкой, которое имеет точность по умолчанию.Если вам не требуется форматировать плавающее устройство для чего-либо еще, кроме печати, что, как кажется, имеет место здесь, я бы придерживался форматирования отображения / печати. ​​

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...