簡體   English   中英

Pandas 類別 dtypes 在 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

我通過上面的 function 得到的結果是:

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 中有很多分類修復。

如果沒有幫助,請檢查提供的轉換器並驗證 CSV 是否不包含格式錯誤的數據,例如錯誤的 unicode,但我不希望出現此類問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM