pandas panda read_json dtype=pd.分类数据类型不工作,但dtype ='类别'工作

ecfsfe2w  于 2023-01-15  发布在  其他
关注(0)|答案(1)|浏览(114)

在read_json中指定CategoricalDtype dtype不会转换列dtype,这是一个已知问题吗?还是代码中有错误?

import pandas as pd

df = pd.read_json(
    "./data/data.json",
    dtype={
        #"facility": pd.CategoricalDtype, # does not work
        "facility": 'category',           # does work
        "supplier": pd.CategoricalDtype,  # does not work
    }
)
df.info()
-----
 #   Column        Non-Null Count  Dtype         
---  ------        --------------  -----         
 0   facility      232 non-null    category      
 3   supplier      111 non-null    object

环境

MacOS 13.0.1 (22A400)
$ python --version
Python 3.9.13
$ pip list | grep pandas
pandas                      1.5.2
szqfcxe2

szqfcxe21#

根据文件:
由于dtype ='category '本质上是CategoricalDtype(None,False),并且由于所有示例CategoricalDtype比较都等于' category ',所以所有示例CategoricalDtype比较都等于CategoricalDtype(None,False),而不管类别或排序如何。
尝试:

"supplier": pd.CategoricalDtype()

相关问题