我遇到了以下问题:
我有一个结构为jsonlines文件的文件:
{"id": 1, "uuid": "1344800117571260417"}
{"id": 2, "uuid": "1344900117571260918"}
Run Code Online (Sandbox Code Playgroud)
如果我尝试像这样用 Pandas 阅读它:
df = pd.read_json('file.jsonl', orient='records', lines=True)
我得到以下信息DataFrame:
id uuid
0 1 1344800117571260416
1 2 1344900117571260928
Run Code Online (Sandbox Code Playgroud)
但是uuid有不同的值,我在想这里发生了一些溢出,但我不确定。pandas为该列推断的类型是int64,但np.iinfo(np.int64).max是9223372036854775807,这远高于该uuid列中的值。
此问题的直接解决方案是禁用推断类型,例如pd.read_json(..., dtype=False),但我对这种意外行为很好奇,有人知道为什么会这样吗?
顺便说一句,我正在使用pandasversion1.0.1和pythonversion 3.7.6。