小编Gio*_*cia的帖子

推断 dtypes 时 Pandas 会改变值

我遇到了以下问题:

我有一个结构为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).max9223372036854775807,这远高于该uuid列中的值。

此问题的直接解决方案是禁用推断类型,例如pd.read_json(..., dtype=False),但我对这种意外行为很好奇,有人知道为什么会这样吗?

顺便说一句,我正在使用pandasversion1.0.1pythonversion 3.7.6

python pandas

7
推荐指数
1
解决办法
84
查看次数

标签 统计

pandas ×1

python ×1