[英]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.