Pandas read_csv() 中忽略的类别数据类型

Pandas category dtypes ignored in read_csv()

我在 Pandas(版本 1.0.3)中加载我的 csv 文件时遇到一个奇怪的问题。

我想将某些列自动转换为 category。 为此,我创建了一个包含列名及其类型的字典。 好吧,对于一个专栏它确实有效而对其他专栏无效。 我没有收到任何错误。
哪个列未被解析为 category 的原因可能是什么? 看起来很奇怪,如果我之后尝试通过强制转换将该列转换为 category,该操作将完美运行。 所以乍一看似乎不是列错误输入问题。

col_types = {
    'CURRENCY': "category",
    'PRODUCT': "category",
    'PRODUCT_TYPE': "category",
}

def parse_csv(path_location):
    df = pd.read_csv(
    path_location, 
    sep=';',
    engine='c',
    dtype=col_types,
    true_values=['Y', 'y'],
    false_values=['N', 'n'],
    converters=converters,
    usecols=['PRODUCT', 'PRODUCT_TYPE', 'PORTFOLIO_CURRENCY', 'NATIONALITY'],
    nrows=99)
    return df

我通过上面的函数得到的结果是:

Data columns (total 5 columns):
 #   Column              Non-Null Count  Dtype   
---  ------              --------------  -----   
 0   PORTFOLIO_CURRENCY  198 non-null    category
 1   PRODUCT             198 non-null    object  
 2   PRODUCT_TYPE        198 non-null    object  
 3   AGE                 185 non-null    float64 
 4   NATIONALITY         198 non-null    object  
dtypes: category(1), float64(1), object(3)

虽然我无法安装 1.0.3 来测试是否是版本问题,但我已经在 1.1.4 上进行了测试,它按预期工作。请将 pandas 更新到最新版本,因为 v1.1.0 中有 a lot of 分类修复。

如果没有帮助,请检查提供的转换器并验证 CSV 是否不包含格式错误的数据,例如错误的 unicode,但我预计不会出现此类问题。