Как бороться с пандами, читающими JSON: слишком большие целочисленные значения будут одинаковыми - PullRequest
0 голосов
/ 25 декабря 2018

У меня есть файл JSON, в котором столбец значений представляет собой большое целое число.Целочисленное значение будет таким же, когда я читаю его с помощью панд.

Пример

import pandas as pd

line = '{"value":"383088110696696320"}\n{"value":"383088110696696321"}'
df = pd.read_json(line,lines=True)
print(df)

                value
0  383088110696696320
1  383088110696696320

Я попытался правильно прочитать его следующим образом, но он не может выполнитьматематические операции.

df = pd.read_json(line,lines=True,dtype=False)
df['value'] = df['value'].astype(float)
df['value'] = df['value']-383088110696696320
print(df)
   value
0    0.0
1    0.0

Как с этим бороться?Заранее спасибо.

1 Ответ

0 голосов
/ 25 декабря 2018

Не уверен, что у вас 32- или 64-битная машина, но вы должны попробовать использовать np.int64:

import numpy as np
import pandas as pd

line = '{"value":"383088110696696320"}\n{"value":"383088110696696321"}'
df = pd.read_json(line, lines=True, dtype=False)
df['value'] = df['value'].astype(np.int64)
df['value'] = df['value'] - 383088110696696320
print(df)
#     value
#  0      0
#  1      1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...