如何处理熊猫读取JSON太大的整数值将是相同的

时间:2018-12-25 09:15:11

标签: python-3.x pandas numpy

我有一个JSON文件,其中value列是一个大整数。用熊猫读取时,该整数值将相同。

一个例子

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 :(得分:2)

不确定是否使用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