【发布时间】:2020-05-28 09:00:03
【问题描述】:
我有一个如下所示的 json 文件:
[{"A": 0, "B": "x"}, {"A": 1, "B": "y", "C": 0}, {"A": 2, "B": "z", "C": 1}]
由于“C”列包含一个 NaN 值(第一行),pandas 自动推断其 dtype 为“float64”:
>>> pd.read_json(path).C.dtype
dtype('float64')
但是,我希望“C”列的 dtype 为“Int32”。 pd.read_json(path, dtype={"C": "Int32"}) 不起作用:
>>> pd.read_json(path, dtype={"C": "Int32"}).C.dtype
dtype('float64')
相反,pd.read_json(path).astype({"C": "Int32"}) 确实有效:
>>> pd.read_json(path).astype({"C": "Int32"}).C.dtype
Int32Dtype()
为什么会这样?如何仅使用 pd.read_json 函数设置正确的 dtype?
【问题讨论】: